Csharp/C#教程:如何检查c#中的类是否只读?分享


如何检查c#中的类是否只读?

我可以编写一个unit testing来确保我写的只读类(没有setter的类)将来仍然只读吗? 我不希望任何人在我的类中添加setter属性。

基本上,我如何检查一个类是否在C#中没有setter?

注意:提问者最初提出的问题是“我如何确定某个类是否为值类型?” 后来改了。

bool isValueType = object.GetType().IsValueType 

要么

 bool isValueType = typeof(YourClass).IsValueType 

MSDN: http : //msdn.microsoft.com/en-us/library/system.type.isvaluetype.aspx

这应该是零:

 var setterCount = (from s in typeof(IDataCollector).GetProperties( BindingFlags.Public | BindingFlags.Instance) where s.CanWrite == true select s) .Count(); 

我认为这里的关键词是“ 我不希望任何人在我的课程中添加一个setter属性。

通常,如果要编写不可变类,则应将类标记为已密封,并将所有字段标记为只读 。


当然,如果您希望人们从您的class级inheritance,您必须考虑以下因素:

如果允许人们inheritance你的class级,你真的没有办法让你的class级只读。

  Type type = typeof(YourClass); PropertyInfo[] properties = type.GetProperties(BindingFlags.Instance); bool passesTest = true; foreach (PropertyInfo property in properties) { passesTest = passesTest && property.CanWrite; } 

如何只读标记所有字段?

上述就是C#学习教程:如何检查c#中的类是否只读?分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/997696.html

(0)
上一篇 2021年12月26日
下一篇 2021年12月26日

精彩推荐