Członkowie typów wbudowanych

W C# nawet tzw. typy prymitywne (int, char, bool, string itd.) są reprezentowane jako struktury (struct) lub klasy. To oznacza, że:

  • mają członków: metody, właściwości i stałe,
  • możemy je wykorzystywać tak, jak obiekty – mimo że są to „proste” typy.

Członkowie typu to:

  • właściwości (np. int.MaxValue)
  • metody (np. char.IsDigit())
  • stałe (np. true, false)
  • operatory (np. +, ==, !, itd.)

Najczęściej używane członkowie typów wbudowanych

int (System.Int32)

Typ do przechowywania liczb całkowitych 32-bitowych.

Popularni członkowie:

  • int.MaxValue – największa możliwa wartość int
  • int.MinValue – najmniejsza możliwa wartość int
  • int.Parse(string) – konwertuje tekst do liczby
  • int.TryParse(string, out int) – próbuje przekonwertować tekst na int, bez błędu

Przykład:

int max = int.MaxValue;
int min = int.MinValue;
Console.WriteLine("Max int: " + max);
Console.WriteLine("Min int: " + min);

string tekst = "123";
int liczba = int.Parse(tekst);  // konwersja string do int

Zastosowanie TryParse – bezpieczne:

Console.WriteLine("Podaj liczbę:");
string wejscie = Console.ReadLine();

if (int.TryParse(wejscie, out int wynik))
{
    Console.WriteLine("Poprawna liczba: " + wynik);
}
else
{
    Console.WriteLine("Niepoprawna liczba!");
}

char (System.Char)

Reprezentuje pojedynczy znak.

Popularni członkowie:

  • char.IsDigit(char) – czy znak to cyfra
  • char.IsLetter(char) – czy znak to litera
  • char.IsWhiteSpace(char) – czy znak to biały znak (np. spacja, tabulator)
  • char.IsPunctuation(char) – czy znak to znak interpunkcyjny
  • char.ToUpper(char) / char.ToLower(char) – zamiana na wielką/małą literę

Przykład:

char myChar = 'z';

bool isWhiteSpace = char.IsWhiteSpace(myChar);   // false
bool isDigit = char.IsDigit(myChar);             // false
bool isPunctuation = char.IsPunctuation(myChar); // false
bool isLetter = char.IsLetter(myChar);           // true

Console.WriteLine("Czy litera? " + isLetter);
Console.WriteLine("Wielka litera: " + char.ToUpper(myChar));

string (System.String)

Typ referencyjny przechowujący tekst.

Popularni członkowie:

  • Length – długość tekstu
  • ToUpper() / ToLower() – zamiana na wielkie/małe litery
  • Contains(string) – czy zawiera fragment
  • StartsWith(string) / EndsWith(string) – czy zaczyna/kończy się na podany tekst
  • Substring(start, length) – fragment tekstu
  • Trim() – usuwa białe znaki z początku i końca
  • Replace(stary, nowy) – zamienia fragmenty tekstu

Przykład:

string imie = "  Ania  ";

Console.WriteLine("Długość: " + imie.Length);           // 7
Console.WriteLine("Po Trim(): " + imie.Trim());         // "Ania"
Console.WriteLine("Czy zawiera 'ni'? " + imie.Contains("ni")); // true
Console.WriteLine("Dużymi literami: " + imie.ToUpper());

bool (System.Boolean)

Typ logiczny – przyjmuje tylko wartości true lub false.
Najczęściej używany w warunkach i pętlach.

Przykład:

bool warunek = (5 > 3);  // true
Console.WriteLine("Warunek: " + warunek);

if (!warunek)
{
    Console.WriteLine("Nieprawda");
}

double, float, decimal

Typy zmiennoprzecinkowe (różnią się zakresem i precyzją):

  • float: mniej dokładny (32-bit)
  • double: domyślny zmiennoprzecinkowy (64-bit)
  • decimal: bardzo dokładny (128-bit) – używany np. w finansach

Popularni członkowie:

  • double.NaN – nie liczba
  • double.IsNaN(), IsInfinity() – sprawdzanie wyjątkowych wartości
  • Math.Round(), Math.Sqrt() – funkcje matematyczne (z klasy Math)

Przykład:

double a = 3.14159;
double b = Math.Round(a, 2); // zaokrąglenie do 2 miejsc
Console.WriteLine("Zaokrąglone: " + b);

Praktyczne ćwiczenie

Sprawdź znak:

Console.Write("Podaj znak: ");
char znak = Console.ReadKey().KeyChar;
Console.WriteLine();

Console.WriteLine("Czy litera? " + char.IsLetter(znak));
Console.WriteLine("Czy cyfra? " + char.IsDigit(znak));
Console.WriteLine("Czy biały znak? " + char.IsWhiteSpace(znak));
Console.WriteLine("Czy interpunkcja? " + char.IsPunctuation(znak));

Podsumowanie

TypCzłonkowiePrzykład
intMaxValue, MinValue, Parse(), TryParse()int.MaxValue
charIsDigit(), IsLetter(), IsWhiteSpace(), ToUpper()char.IsLetter('A')
stringLength, ToUpper(), Contains(), Trim()"Ania".ToUpper()
boolwartości true i falsebool wynik = (5 > 3);
doubleMath.Round(), IsNaN()Math.Sqrt(25)