任何人都可以請告訴我爲什麼下面的第一個語句會引發編譯錯誤,第二個語句不會呢?空煤炭操作員 - 爲什麼要鑄造?
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