我剛剛得到以下異常,這似乎表明Guid
不是一個對象。不能用於返回類型 爲什麼Guid不是c#中的對象?
型 '的System.Guid' 表達 'System.Object的'
怎麼Guid
不是一個對象?
編譯器如何解決這個問題?必須有一些東西能夠讓我在運行時檢測到類型不是對象,如果是這樣的話,會是什麼情況?
====================編輯附加信息====================
其中SomeExpression可以是Guid的常量值,對於所有問題。
我剛剛得到以下異常,這似乎表明Guid
不是一個對象。不能用於返回類型 爲什麼Guid不是c#中的對象?
型 '的System.Guid' 表達 'System.Object的'
怎麼Guid
不是一個對象?
編譯器如何解決這個問題?必須有一些東西能夠讓我在運行時檢測到類型不是對象,如果是這樣的話,會是什麼情況?
====================編輯附加信息====================
其中SomeExpression可以是Guid的常量值,對於所有問題。
這裏的問題是您正在使用表達式結構錯誤。即使box操作在C#中隱含,它仍然存在。表達式樹中隱含的是而不是。下面應該修復它:
Expression.Lambda<Func<object>>(
Expression.Convert(SomeExpression, typeof(object))
你也可以查看SomeExpression.Type.IsValueType
來決定是否要添加此額外的顯式轉換。
這似乎是相關的:http://stackoverflow.com/questions/2200209/expression-of-type-system-int32-cannot-be-used-for-return-type-system-object – 2013-02-26 08:18:42
是的,但我不想投不一定,我怎麼知道是否有什麼東西能起作用?表達式工作正常,直到我處理原生/值類型的東西。 – Alwyn 2013-02-26 08:20:26
您的問題缺少示例代碼(最好是CSXXXX錯誤代碼與MSDN鏈接,因此您可以評論什麼不明確)。 – 2013-02-26 08:20:36