|
int? a = 5; Console.WriteLine(a ?? -1); // 5 string name = null; Console.WriteLine(name ?? "(no name)"); // (no name) |
Ето няколко примера за операторите, които разгледахме в тази секция:
|
int a = 6; int b = 3;
Console.WriteLine(a + b / 2); // 7 Console.WriteLine((a + b) / 2); // 4
string s = "Beer"; Console.WriteLine(s is string); // True
string notNullString = s; string nullString = null; Console.WriteLine(nullString ?? "Unspecified"); // Unspecified Console.WriteLine(notNullString ?? "Specified"); // Beer |
По принцип операторите работят върху аргументи от еднакъв тип данни. Въпреки това в C# има голямо разнообразие от типове данни, от които можем да избираме най-подходящия за определена цел. За да извършим операция върху променливи от два различни типа данни ни се налага да преобразуваме двата типа към един и същ. Преобразуването на типовете (typecasting) бива явно и неявно (implicit typecasting и explicit typecasting).
Всички изрази в езика C# имат тип. Този тип може да бъде изведен от структурата на израза и типовете, променливите и литералите използвани в него. Възможно е да се напише израз, който е с неподходящ тип за конкретния контекст. В някой случаи това ще доведе до грешка при компилацията на програмата, но в други контекстът може да приеме тип, който е сходен или свързан с типа на израза. В този случай програмата извършва скрито преобразуване на типове.
Специфично преобразуване от тип S към тип T