任何人都可以请告诉我为什么下面的第一个语句会引发编译错误,第二个语句不会呢?空煤炭操作员 - 为什么要铸造?
NewDatabase.AddInParameter(NewCommand, "@SomeString", DbType.String, SomeString ?? DBNull.Value); // <-- Throws compilation error!
NewDatabase.AddInParameter(NewCommand, "@SomeString", DbType.String, (object)(SomeString) ?? DBNull.Value); // <-- Compiles!
我试过其他可空类型,如byte?
,得到了相同的结果。任何人都可以告诉我为什么我需要首先投射物体?
究竟是编译错误? NewDatabase.AddInParameter的签名是什么? – Vlad 2011-06-13 16:23:12
签名是'void AddInParameter(DbCommand,string,DBType,object)'。编译错误是“运营商”??不能应用于'string'和'System.DBNull'类型的操作数“。 – 2011-06-13 16:24:11
相关问题 - http://stackoverflow.com/questions/13698421/is-if-condition-better-than-and-casting – Lijo 2012-12-04 16:57:21