Csharp/C#教程:为getter和setter使用支持变量分享


为getter和setter使用支持变量

也许这是一个愚蠢的问题,但是,对于C#来说,我是一个新的合适的人(更多来自Java背景)并且在我看到的有关属性的getter和setter的不同示例之间感到困惑。

在某些情况下,代码如下所示:

private string _something; public string Something { get { return _something; } set { _something = value; } } 

但是,在其他示例中,他们不使用此支持memeber,因此更像是这样:

  public string Something { get; set; } 

我没有看到使用这些支持变量(_something)的好处,除非你有一些关于变量设置的复杂逻辑。

我正在使用后一种方法编写我的程序,但想检查一下我没有错过任何东西。

有人可以解释为什么人们选择做前者吗? 这是更好的“良好做法”吗?

非常感谢!

我没有看到使用这些支持变量(_something)的好处,除非你有一些关于变量设置的复杂逻辑。

如果你不使用它没有任何优势。 使用第二种方法,仍然有一个支持变量,但是你让编译器完成添加它的工作。 从.NET 3.5及更高版本开始,您当前的方法完全有效。

当然,只要您需要引入额外的逻辑,那么自己管理后备存储就变得至关重要。

之前的语法在.NET 3.5之前是必需的,因此可以在旧代码中找到。

它在function上是等同的。

public string Something {get; 组; 只是空手而归。 在后台,它正在做与上面完全相同的事情。

使用第一种语法的一个很好的理由是与MVVM体系结构一起使用,其中属性绑定到前端元素。

就像是:

  private string _something; public string Something { get { return _something; } set { _something = value; OnNotifyPropertyChanged("Something"); } } 

这会提醒你的前端它的绑定属性已被更改,它必须更新。

seconde方法是自动实施属性

在实例中引用自动属性与声明公共字段相同,这会破坏封装原则 。 因此,如果您不在同一个类中访问它们,请使用自动属性。 否则,使用成员(支持)字段并从本地方法引用它,同时通过普通的.NET属性公开它们。

使用.NET 3.0添加自动属性作为语法糖,因此您不再需要支持类中未引用的字段。

上述就是C#学习教程:为getter和setter使用支持变量分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)

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

如若转载,请注明出处:https://www.ctvol.com/cdevelopment/949001.html

(0)
上一篇 2021年11月17日
下一篇 2021年11月17日

精彩推荐