栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

属性和变量有什​​么区别

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

属性和变量有什​​么区别

正如许多人指出的那样,A是一个 字段 ,B是一个 属性

真正的问题是,您为什么要关心以及使用什么?

我指的是Jonathan
Aneja
的博客文章:

(在VB中,但它也适用于C#;)

那么,为什么要对字段使用属性,有五个原因:

1.字段不能在接口中使用

您不能通过接口强制对象的公共合同中存在字段。对于属性,虽然效果很好。

2.验证

尽管您的应用程序当前可能不需要任何验证逻辑来​​设置特定值,但是更改业务需求可能需要稍后插入此逻辑。那时,将字段更改为属性对于API使用者来说是一项重大更改。(例如,如果有人通过反射检查您的班级)。

3.二进制序列化

如果使用二进制序列化,则将字段更改为属性是一项重大更改。顺便说一句,这是VB10的自动实现属性具有“可绑定”后备字段(即,您可以在代码中表示后备字段的名称)的原因之一-
这样,如果您将自动实现的属性更改为扩展的属性,您仍然可以通过保持背景字段名称相同来保持序列化兼容性(在C#中,您不得不更改它,因为它会生成具有不可绑定名称的背景字段)。

4.许多.NET数据绑定基础结构绑定到属性,但不绑定到字段

我已经听过双方关于这是否是一件好事的争论,但现实是这就是现在的工作方式。 (我的注意:WPF绑定适用于属性)

5.暴露公共场所[违反FxCop](http://msdn.microsoft.com/en-

us/library/ms182141(VS.80).aspx)

由于上述许多原因:)

可能还有更多原因。

我还想指出Jeff Atwood的博客文章,并引用其中的一段话:

这里最重要的事情是避免编写无关紧要的代码。 围绕公共变量的属性包装器是毫无意义的代码的本质。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/576069.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号