【发布时间】:2013-04-17 16:03:45
【问题描述】:
在 .NET 库和许多第三方库中,我可以看到如何更改内部(私有)成员值有一些约定,它们支持属性(.NET 属性)或方法(这些通常是在 java 中作为 Setter 和 Getter 使用)或两者都用于程序员。
我想知道何时(以及为什么)使用属性、方法或两者兼而有之。例如,可以使用 Visible 属性(在 Windows 窗体中)或调用方法 Show() 或 Hide() 来更改控件的可见性强>。有一些值(我知道有一些内部/私有值)只能通过调用方法(如 setter)来更改。在设计自己的控件、类时,我有点犹豫是选择属性还是方法(或者两者都支持?),事实上,选择其中一个也可以(Java 是一个仅使用方法的示例)。我知道属性相对于方法(如 getter 和 setter)的优势,但如果是这样,为什么我们必须在某些情况下使用方法,它们会呈现给程序员甚至替换属性。我对此有点困惑,对我来说(正如我所说),只使用方法时我感觉还可以(就像我在 java 中所做的那样,这还不错:)。
我想知道您的经验以及您在这方面的惯例。我喜欢遵循编程中的标准约定(针对每种编程环境和每种语言)来区分它们。不像一些发明自己的风格的人,这些风格对其他程序员来说有点难以辨认,例如在 C# 中使用 C++ 命名约定(甚至是 PHP 命名约定?)?对我来说有点奇怪,对不起。
请分享,谢谢...
【问题讨论】:
-
如果公共属性和类实现 iNotifyPropertyChanged,则 UI 会动态更新。投票结束。 msdn上有很多关于这个的。
-
@Blam,你说的是 UI 吗? UI 只是众多案例中的一种,有大量的类,尤其是在开源和第三方库的世界中,它们与 UI 无关并且似乎不遵循任何约定。他们甚至使用方法而不是属性。
-
那么你的意思是什么?是的,您会发现很多不使用约定的代码。您的问题被标记为 .NET,您询问了何时以及为什么。我举了一个例子,说明何时以及为什么要使用属性。
标签: c# .net coding-style