我想在類中進行一些驗證,所以我想我可以使用屬性。 像這樣:獲得屬性修飾屬性的值
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中的代碼幾乎和我在我的問題中發佈的一樣,但是無論如何。 另外,在對房產驗證有一些經驗後,我再也不想這樣做了,我從不期望在屬性中拋出異常。自那以後,我徹底改變了主意。 –