Data types (Τύποι δεδομένων) C#

Integers (ακέραιοι)

 

Τύποι 

.NET

Μέγεθος

Σειρά

sbyte

System.SByte

1 byte

-128 μέχρι 127 

byte

System.Byte

1 byte

0 μέχρι 255 

short

System.IUInt16 

2 byte

-32,768 μέχρι 32,767 

ushort

System.Uint16 

2byte

0 μέχρι 65,535

int

System.Int32 

4 byte

-2,147,483,648 μέχρι 2,147,483,647

uint

System.Uint32 

4 byte

0  μέχρι 4,294,967,295 

long

System. Int64

8 byte

-9,223,372,036,854,775,808 μέχρι 9,223,372,036,854,775,807 

ulong

System.Uint64 

8 byte

0 μέχρι 18,446,744,073,709,551,615 

Floating point Number (μεταβλητές κινητής υποδιαστολής)

 

Τύποι 

.NET

Μέγεθος

Σειρά

Float 

System.Single 

4 byte

1.5 x 10-45 μέχρι 3.4 x 1038 

Double 

System.Double 

8 byte

5.0 x 10-324 μέχρι 1.7 x 10308

Decimal 

System.Decimal 

16 byte

1.0 x 10-28 μέχρι 7.9 x 1028

 

Οι μεταβλητές περιέχουν μια τιμή, η οποία μπορεί να μεταβληθεί κατά την διάρκεια εκτέλεσης του προγράμματος.

Για να χρησιμοποιηθεί όμως μια μεταβλητή πρέπει πρώτα να δηλωθεί, να της δοθεί δηλαδή ένα όνομα και να επιλεγεί ο τύπος δεδομένων που θα αποθηκεύει. Η δήλωση γίνεται γράφοντας έναν τύπο δεδομένων ακολουθούμενο από ένα όνομα.

 

1. Παράδειγμα (Byte):

static void Main() {

byte MyNumber = 254;

Console.WriteLine(MyNumber); //Εμφανίζει 254

MyNumber++;
// Συν 1 -> 255

Console.WriteLine(MyNumber); //Εμφανίζει 255

MyNumber++;
// Συν 1 -> 0 (όριο 255)

Console.WriteLine(MyNumber); //Εμφανίζει 0

MyNumber++;
// Συν 1 -> 1

Console.WriteLine(MyNumber); //Εμφανίζει 1

}

 

2. Παράδειγμα (int/float)

Με Int


static
void Main()

//Σε περίπτωση που Δηλώσουμε 2 ακεραίους INT

{

//Δηλώνουμε 2 ακεραίους

INT int A = 10; int B = 3;

//διαιρούμε 10/3

int apotelesma = A/B;

// Μας εμφανίζει 3 και Οχι 3,333...

Console.WriteLine(apotelesma);

}

Με Float


static void Main()

//Σε περίπτωση που Δηλώσουμε 2 ακεραίους Single

{

//Δηλώνουμε 2 ακεραίους Single ή double ή float

Single A = 10; Single B = 3;

//διαιρούμε 10/3

Single apotelesma = A/B;

// Μας 3,333...

Console.WriteLine(apotelesma);


}



3. Παράδειγμα (Float)

static void Main()

{

float apostasi;

float xronos;

float taxitita;

apostasi = 0.1f;

// 100m είναι 0.1 km

// για 9.87 δευτερόλεπτα είναι 9.87/60*60 h

xronos = 9.87f / 3600;

taxitita = apostasi / xronos;

Console.WriteLine("Η μέση ταχύτητα είναι {0} km/h", taxitita);

}

  

4. Παράδειγμα (Int/Long):

static void Main()

{

int x = 10000;

int y = 20000;


//Σε αυτό οι μεταβλητές "int" μετατρέπονται σε "long"

//Δεν χρειάζεται conversion από το ‘int’ σε ‘long’,γίνεται αυτόματα.

int total;

total = x * y;

Console.WriteLine("Το αποτέλεσμα είναι:" + total);

}

Strings & chars (Συμβολοσειρές και χαρακτήρες)

Συμβολοσειρά (string) είναι μια σειρά αλφαριθμητικών χαρακτήρων (γενικά  εκτυπώσιμων συμβόλων ASCII). Όταν λέμε σειρά εννοούμε διαδοχικές θέσεις  μνήμης που μπορούν να αντιμετωπισθούν σαν ένα σύνολο διατεταγμένων  στοιχειωδών δεδομένων.

Η συμβολοσειρά είναι ένας ειδικός τύπος πίνακα με δεδομένα του τύπου char και με τερματισμό μέσω του μηδενικού χαρακτήρα.

Παράδειγμα:

static void Main()

{

//το Α = StudentGuru

string A = "StudentGuru";

//B = με το πρώτο χαρακτήρα της μεταβλητής Α άρα = "S"

char B = A[0]; Console.WriteLine(B);

// εκτυπώνει στην κονσόλα.

Console.WriteLine(A);

// εκτυπώνει στην κονσόλα.

//Τώρα το B = με το τρίτο χαρακτήρα της μεταβλητής Α άρα ="u"

B=A[2];

Console.WriteLine(B);

// εκτυπώνει στην κονσόλα.

}

  

Bool τιμές

Ο τύπος bool έχει δύο σταθερές τιμές:

  • την true 
  • και την false

Σημείωση: true = αληθές και false = εσφαλμένο, ψευδές.

Παράδειγμα:

static void Main()

{

bool CheckNumber;

Console.WriteLine("Typose studentguru");

string num = Console.ReadLine();

//εάν η μεταβλητή = studentguru

if (num =="studentguru")

{

CheckNumber = true;

//τότε το checkNumber = true

}

else

{

CheckNumber = false;

//διαφορετικά checkNumber = false

}

Console.WriteLine(CheckNumber);

}

 

Nullable Types

Ο όρος Null είναι μια ενδιαφέρουσα ιδέα στον κόσμο του προγραμματισμού και δεν είναι συνώνυμο με το «μηδέν» ή «κενό», αλλά «απροσδιόριστη».

Κάθε προγραμματιστή συχνά κατά τη διάρκεια της ανάπτυξης των εφαρμογών τους  έχουν να κάνουν με τη λεγόμενη “τύπους τιμή δεδομένων” (τύποι αξία) ως  int, double, bool, char κτλ. Αυτοί οι τύποι δεδομένων είναι οι βασικοί,  είναι λίγο περίεργη σε ορισμένες περιπτώσεις, δεν μπορεί να οριστούν μηδενικές.

Ευτυχώς, η C #  παρέχει ένα πολύ χρήσιμο εργαλείο:. Nullable Types  δεδομένων. Αυτοί οι τύποι δεδομένων μπορούν να χρησιμοποιηθούν σε οποιοδήποτε σημείο του κώδικα όπου υπάρχει ανάγκη να έχουμε μια μεταβλητή που μπορεί να έχει αξίες.

1. Παράδειγμα σύνταξη:

  1. char? letter = 'a';

    2. int? i = null;

    3. int? i = 10;

    4. double? d1 = 3.14;

    5. bool? flag = null;

     6. int?[] arr = new int?[10];

     Το "var" δεν είναι συμβατό με αυτό Nullable Type: var? i = null; //Λάθος Η σωστή σύνταξη για το "var" είναι: var i = 4;

2. Παράδειγμα Nullable types

static void Main(string[] args)

{

int? num = null; //Nullable Types Σύνταξη

//Έλεγχος εάν η μεταβλητή num έχει τιμή

if (num.HasValue == true)

//αν ναι τύπωσε μας την τιμή

System.Console.WriteLine(num.Value);

Else

//αν όχι τύπωσε NULL

System.Console.WriteLine("NULL");

}

 

3. Άμεση Μετατροπή

int? n = null;

//int m1 = n; // Λάθος

int m2 = (int)n;

int m3 = n.Value;

4. Έμμεση μετατροπή

int? n1 = null;

int? n2;

n2 = 10; //Έμμεση μερατροπή

5. “??” Τελεστές Nullable

int? c = null;

// d = c, και το c είναι null, το d = -1.

int d = c ?? -1;

int? e = null;

int? f = null;

// g = e ή και f, εκτός εάν το e και το f = null, που για κάθε περίπτωση g = -1.

int g = e ?? f ?? -1;

bool? b = null;

if (b)

// Λάθος CS0266

{

}

Var Types

Η μεταβλητή δεν είναι άλλο από μια ονομασμένη θέση μνήμης που μπορεί να περιέχει δεδομένα οποιουδήποτε είδους.  Με τον τύπο Var δεν χρειάζεται να σκεφτούμε πολύ σκληρά το πώς θα δηλώσουμε την μεταβλητή μας. Η var είναι εύχρηστη, διότι δεν χρειάζεται να αποφασίσετε αν θα χρησιμοποιήσετε System.String ή System.Int32. Ο compiler καθορίζει τον τύπο για μάς.

1. Παράδειγμα Var Types

Παράδειγμα: 

static void Main()

{

var leksi = “studentGuru”;

var Arithmos = 21;

var MegArithmo = 219283746253;

var dekadiko = 2,19283746253;

}

Παρόμοια κατάσταση, αν έχετε μια απλή κλάση με το όνομα Person:

public class Person

{

public string Name { get; set; }

public int Age { get; set; }

}

static void Main()

{

var person = new Person();

person.Age = 21;

person.Name = “StudentGuru”;

}