Niedawno w poprzednim projekcie natknąłem się na szczególną różnicę między VB.NET i C#.Nic! = Null - czy to prawda?
Rozważmy następujący wyraz C#, który:
null <= 2
wyrażenie to Fałsz która jest co by się spodziewać. Następnie odpowiedni wyraz VB.NET:
Nothing <= 2
Byłem zaskoczony, aby dowiedzieć się, że to wyrażenie faktycznie ma wartość Prawdziwego
Wydaje się dość fundamentalnej decyzji projektowej między dwoma językami i na pewno złapany odpadam.
Czy ktoś może mi powiedzieć, dlaczego? Czy null i Nic jedno i to samo? Jeśli tak, dlaczego zachowują się inaczej?
'null <= 2' generuje ostrzeżenie w czasie kompilacji w języku C# i żaden element IL odpowiadający tej operacji nigdy nie jest wysyłany do zespołu wyjściowego. –
wypróbuj wyrażenie w LINQPAD - wyobraź sobie, że null jest rzeczywiście int? wartość, która ma wartość zerową. –
Powiązane pytanie (choć niekoniecznie to samo): http://stackoverflow.com/questions/2776902/why-can-you-assign-nothing-to-an-integer-in-vb-net –