我想在类中进行一些验证,所以我想我可以使用属性。 像这样:获得属性修饰属性的值
public class someClass
{
[Lenght(200)]
public string someStr { get; set; }
}
[AttributeUsage(AttributeTargets.All, Inherited = false, AllowMultiple = true)]
sealed class Lenght : Attribute
{
public Lenght(int Lenght)
{
//some code
}
}
但我知道,我不能这样做,因为这不是属性如何工作。而且,如果有办法,它会使用我想避免的某种沉重的反射和杂物。
我想要做的验证是这样的:
public class someClass
{
public string someStr
{
get
{
return _someStr;
}
set
{
if (value.Length > 200)
{
throw new Exception("Max Length is 200!");
}
else _someStr = value;
}
}
private string _someStr { get; set; }
}
但我想做得更快,没有所有这些代码。我想和使用属性一样快。
有一种方法可以做到这一点?
我发布这个问题已经有2年了,今天我在这里回顾我的问题。 从那时起我已经学会了一些C#,现在我不会问这个问题,我也不会使用属性来验证它。 我接受了你的答案,因为你付出了一些努力,我只想指出你在SomeClass中的代码几乎和我在我的问题中发布的一样,但是无论如何。 另外,在对房产验证有一些经验后,我再也不想这样做了,我从不期望在属性中抛出异常。自那以后,我彻底改变了主意。 –