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.
0
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