В смешанном проекте кода (VB и С#) мы отлаживали старый код Visual Basic следующим образом:
If Request.Params("xxx") <> "" Then
'do something
Я считал эту ошибку как Request.Params может быть null
, и в этом случае утверждение стало бы ложным, что не было идеей.
Так я думал. Я только что узнал - снова, что VB Nothing
и С# null
- это не одно и то же, а Nothing
- это не то же самое, что null
. Фактически:
if(String.Empty == null) // in C# this is always false (correct)
If String.Empty = Nothing Then ' in VB this is always true (????)
Как это возможно? Это проблема обратной совместимости?