当前位置: 首页 > 编程语言 > C#

C#3.0中的C#可选属性(2009)分享

时间:2023-04-10 17:40:54 C#

C#3.0中的可选属性(2009)想知道C#是否支持以下可选属性publicclassPerson{publicstringName{get;设置;}公共可选字符串昵称{得到;set;}...更多属性...}因此,当我创建一个Person对象时,我可以轻松地在一个简单的循环中检查输入的值ValiditypublicboolIsInputOK(Personperson){foreach(varpropertyinperson.GetType().GetProperties()){if(property.IsOptional()){继续;}if(string.IsNullOrEmpty((string)property.GetValue(person,null))){返回false;}}返回真;我用谷歌搜索但没有得到理想的解决方案。我真的需要为每个属性手动处理代码验证代码吗?谢谢。您可以使用您定义的属性来装饰这些属性,并将属性标记为可选。[AttributeUsage(AttributeTargets.Property,Inherited=false,AllowMultiple=false)]内部密封类OptionalAttribute:Attribute{}publicclassPerson{publicstringName{get;放;}[可选]publicstringNickName{get;放;}}publicclassVerifier{publicboolIsInputOK(Personperson){foreach(varpropertyinperson.GetType().GetProperties()){if(property.IsDefined(typeof(OptionalAttribute),true)){继续;}if(string.IsNullOrEmpty((string)property.GetValue(person,null))){returnfalse;}}返回真;您可能还想查看具有类似功能的验证应用程序块。C#没有“可选”关键字,正如@MitchWheat所说,这是一种糟糕的验证方式。为什么不能在属性设置器中进行验证?如果你想用属性而不是你自己的验证代码来标记道具,为什么不试试验证框架呢?http://www.codeplex.com/ValidationFramework以上是C#学习教程:C#3.0中的C#可选属性(2009)分享的全部内容,如果对大家有用还需要进一步了解C#学习教程,希望大家多多关注——本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: