มันไม่น่าเชื่อจริงๆ แต่เป็นของจริง รหัสนี้จะไม่ทำงาน:
[AttributeUsage(AttributeTargets.Property|AttributeTargets.Field)]
public class Range : Attribute
{
public decimal Max { get; set; }
public decimal Min { get; set; }
}
public class Item
{
[Range(Min=0m,Max=1000m)] //compile error:'Min' is not a valid named attribute argument because it is not a valid attribute parameter type
public decimal Total { get; set; }
}
ในขณะที่ใช้งานได้:
[AttributeUsage(AttributeTargets.Property|AttributeTargets.Field)]
public class Range : Attribute
{
public double Max { get; set; }
public double Min { get; set; }
}
public class Item
{
[Range(Min=0d,Max=1000d)]
public decimal Total { get; set; }
}
ใครสามารถบอกฉันได้ว่าทำไมดับเบิลถึงตกลงขณะที่เลขทศนิยมไม่ใช่