Operator as

0

int ? aa= o as int ?;
Mógłby ktoś mi wyjaśnić co robią te znaki zapytania. Wiem tylko że chodzi o coś z wartością null.
Z góry dzięki za odpowiedzi.

3

int? to skrót na Nullable<int>, czyli oznacza to, że dana zmienna może przyjąć wartość null, ale nie musi.

Rzeczy które są nullable mają właściwości .HasValue oraz .Value, a dodatkowo nierzadko w ich kontekście używa się operatora ?? np. tak:

int? aa = null as int?;
var c = aa ?? 1;

as jest podobny do casta, ale jeżeli cast jest niemożliwy, to wynikiem jest null zamiast wyjątku. as wymaga, aby typ tego, co otrzyma wartość po as mógł być nullem.

Chociaż tu raczej odsyłam do:

https://stackoverflow.com/questions/4926677/c-sharp-as-cast-vs-classic-cast

1 użytkowników online, w tym zalogowanych: 0, gości: 1