谁能告诉我为什么以下语句中的第一个会引发编译错误而第二个不会?
NewDatabase.AddInParameter(NewCommand, "@SomeString", DbType.String, SomeString ?? DBNull.Value); // <-- Throws compilation error!
NewDatabase.AddInParameter(NewCommand, "@SomeString", DbType.String, (object)(SomeString) ?? DBNull.Value); // <-- Compiles!
我尝试了其他可以为空的类型,例如byte?
并得到了相同的结果。谁能告诉我为什么我需要先投反对票?