c# – 具有空访问者的属性

c# – 具有空访问者的属性,第1张

概述虽然我当然熟悉自动属性,但我在工作中遇到过这个问题,这似乎是一个截然不同的野兽: public SomeType SomeProp{ get { return someField; } set { }} 我很惊讶它甚至编译,我想它一定是一个bug:该属性似乎允许设置,但这样做绝对没有. 这个结构有用吗?电梯中的那些“关门”按钮是不是做了什么,但让用户感觉良好? 虽然我当然熟悉自动属性,但我在工作中遇到过这个问题,这似乎是一个截然不同的野兽:

public SomeType SomeProp{  get  {    return someFIEld;  }  set  {  }}

我很惊讶它甚至编译,我想它一定是一个BUG:该属性似乎允许设置,但这样做绝对没有.

这个结构有用吗?电梯中的那些“关门”按钮是不是做了什么,但让用户感觉良好?

解决方法 当结果需要在Web服务中序列化或使用XML或二进制序列化程序时,您经常会看到这种情况.

这是懒惰和草率,但它经常发生.这使对象具有属性可设置的“外观”.如果它是为了实现一个接口并允许编译,那么执行它的开发人员需要被一个直接的对象殴打头部和肩膀,因为他刚刚打破了界面.如果存在无法实现的正当理由,则开发人员需要将其重新提交给架构师进行审核.实现接口时,不要只留下空的存根方法.如果您目前没有为实现定义的技术,那么至少抛出一个新的NotImplementedException,以便单元测试能够捕获它.

就序列化而言:Readonly属性不会包含在常规序列化中,并且可能使该属性对Web服务客户端不可用. (参考:Read-Only Properties Cannot Be Exposed by XML Web Services.)这是我们都应该转向WCF和DataContracts的原因之一.如果您通过WCF接受此类作为方法的输入类型,则再次检索钝对象.

总结

以上是内存溢出为你收集整理的c# – 具有空访问者的属性全部内容,希望文章能够帮你解决c# – 具有空访问者的属性所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1223356.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-05
下一篇 2022-06-05

发表评论

登录后才能评论

评论列表(0条)

保存