本文介绍了为什么"十进制"不是一个有效的属性参数类型?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
这实在是令人难以置信的,但真正的。这code是行不通的:
[AttributeUsage(AttributeTargets.Property | AttributeTargets.Field)
公共类范围:属性
{
公共小数最大{获得;组; }
公共小数敏{获得;组; }
}
公共类项目
{
[范围(最小值=0米,最大=千米)] //编译错误:'民'不是一个有效的命名特性参数,因为它不是一个有效的属性参数类型
公共十进制总{获得;组; }
}
虽然这个作品:
[AttributeUsage(AttributeTargets.Property | AttributeTargets.Field)
公共类范围:属性
{
公共双马克斯{获得;组; }
公共双民{获得;组; }
}
公共类项目
{
[范围(最小值= 0D,最大= 1000D)
公共十进制总{获得;组; }
}
谁能告诉我,为什么双是OK,而小数则不是。
解决方案
从this通过 JaredPar 。
答案It is really unbelievable but real. This code will not work:
[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; }
}
While this works:
[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; }
}
Who can tell me why double is OK while decimal is not.
解决方案
Taken from this answer by JaredPar.
这篇关于为什么"十进制"不是一个有效的属性参数类型?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!