Nie jestem programistą C# ale mam pytanie odnośnie "?"
private async Task SendGpsMessage(int? zmienna = 4) {...}
Nie jestem programistą C# ale mam pytanie odnośnie "?"
private async Task SendGpsMessage(int? zmienna = 4) {...}
? oznacza to, że zamiast int'a możesz przekazać wartość null
natomiast
SendGpsMessage(int? zmienna = 4) {...}
możesz wywołać jako metodę bezparametową, wtedy zmienna przyjmnie domyślną wartość 4
tzw. nullable types (typy nullowalne?)
Ogólnie bierze się to stąd, że typy wartościowe (np. int, float, struct) nie mogą być nullami. A kiedy się je opakuje w System.Nullable to już mogą :) A ?
to lukier składniowy dla typów nullowalnych.
Dziękuje za odp czy z obiekatmi też tak mozna robić ?
Tak:
obj?.Metoda() <-- metoda zostanie wywołana tylko wtedy, gdy obj nie będzie null. To ten sam zapis, co:
if(obj != null)
obj.Metoda();
Kolesko napisał(a):
Dziękuje za odp czy z obiekatmi też tak mozna robić ?
Typy referencyjne są nullowalne domyślnie, bez konieczności stosowania ?
.