22
A
回答
31
不幸的是,你不能在屬性值中使用小數,因爲CLR本身並不真正知道System.Decimal
類型 - 它不是像int,double等原始類型。C#編譯器基本上將它僞造爲const類型的類型十進制,但它不能達到與屬性相同的效果。
從C#3規範,部分17.1.3:
一個屬性類的類型的位置的和名稱 參數是 限於屬性參數 類型,它們是:
- 以下其中之一 類型:bool,byte,char,double, float,int,long,sbyte,short, string,uint,ulong,ushort。
- 類型對象。
- 類型System.Type。
- 枚舉 類型,只要它具有公共 可獲得性和在其中 它嵌套類型(如果有的話)也具有公共 的易用性(§17.2)。
- 上述 類型的一維數組。
再後來在部分17.2:
表達式E是一個屬性參數表達式如果下面的所有語句都是>真:
- 的E型是一個參數 參數類型(第17.1.3節)。
- 在 編譯時,E的值可以 解析爲下列之一:
- 甲 恆定值。
- System.Type對象。
- attribute-argument-expressions的一維數組。
相關問題
- 1. 的屬性參數必須是常量表達式,屬性參數類型
- 2. 自定義屬性:屬性參數必須是常量表達式
- 3. 屬性錯誤:屬性參數必須是常量表達式,typeof表達式或屬性參數類型的數組創建表達式
- 4. 用於註釋屬性RequestMapping.value值必須是常量表達式
- 5. ASP.NET MVC4:屬性參數必須是常量表達式的typeof屬性參數類型
- 6. 屬性參數必須是一個常量表達式,屬性參數類型的表達式或數組創建表達式\t enum描述
- 7. 的屬性參數必須是常量表達式的typeof屬性參數類型的表達式或數組創建表達式
- 8. Android:Error - Case表達式必須是常量表達式
- 9. 案例表達式必須是常量表達式
- 10. Case表達式必須是常量表達式
- 11. 開關 - 大小寫表達式必須是常量表達式
- 12. 無效表達,假定爲零必須是常量表達式
- 13. 擺脫「註釋屬性的值必須是常量表達式」消息
- 14. 註解屬性Test.enabled的值必須是一個常量表達式
- 15. 爲什麼註釋屬性Rest.rootUrl的值必須是常量表達式?
- 16. Linq異常表達式必須是MemberExpression
- 17. Case表達式必須是static final int的常量表達式嗎?
- 18. 一個開關Java問題:case表達式必須是常量表達式
- 19. 分配給'....'的表達式必須是常量
- 20. 常量表達式參數
- 21. 數組「表達式必須有一個常量」
- 22. 左側必須是變量或屬性
- 23. 接收「的表達被分配必須是常量」當它是
- 24. 「常量表達式必需」錯誤,同時保持形式參數爲常量
- 25. FileNameSizeDelimiteC必須是常量
- 26. 關於錯誤「範圍必須以常量表達式爲界」
- 27. 必須將常量表達式評估爲整型嗎?
- 28. 表達式必須有一個常量值
- 29. 表達式必須是L值
- 30. 表達式必須是從宏
什麼屬性? – AMissico 2010-05-04 09:40:51