微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

.NET – 我应该何时使用属性与变量访问器功能?

有没有我应该在.NET中执行以下操作而不是使用具有读/写功能属性的情况?

private S as string

public function GetS() as string
     return S
end function

public sub SetS(byval NewS as string)
    S = NewS
end function

属性是否只是提供了一种更有效的方法来做同样的事情?

在高性能应用程序中,属性是否会比上述访问器功能慢?

解决方法

内部属性只不过是一对方法.它们基本上评估为get和set访问器方法.

您应该使用属性,除非该属性会导致一些意外的,可能长时间运行的副作用,或者还有其他充分的理由使用方法.

有关详细信息,我建议阅读Property Usage Guidelines on MSDN.特别是,在以下情况下使用方法

>操作是转换,例如Object.ToString.
>操作非常昂贵,您希望与用户通信他们应该考虑缓存结果.
>使用get访问器获取属性值会产生可观察到的副作用.
>连续两次调用该成员会产生不同的结果.
>执行的顺序很重要.请注意,应该能够以任何顺序设置和检索类型的属性.
>该成员是静态的,但返回一个可以更改的值.
>该成员返回一个数组.

否则,我会使用一个属性. Brad Abram’s blogged some other details,包括为什么某些API函数使用方法的好理由(主要是因为它们可能导致跨计算机通信,这将属于“副作用”类别).

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐