В смешанном проекте кода (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 (????)
Как это возможно? Это проблема обратной совместимости?