【问题标题】:C# Static Class with Resharper Recommendations [duplicate]具有 Resharper 建议的 C# 静态类 [重复]
【发布时间】:2019-03-09 18:18:34
【问题描述】:

我第一次发帖!潜伏已久。

我正在创建一个静态类,这个答案非常有帮助: C# - Winforms - Global Variables

为了清楚起见,这是该答案中的代码:

static class Global
  {
    private static string _globalVar = "";

    public static string GlobalVar
    {
        get { return _globalVar; }
        set { _globalVar = value; }
    }
  }

但是,在此过程中,ReSharper 建议将代码更改为:

public static string value1 { get; set; } = "";

public static string value2 { get; set; } = "";

我不认为有任何区别,但我想 100% 确定。

所以我的问题是,两者之间有什么区别,如果有,哪一个是最理想的?

【问题讨论】:

  • 在哪两个之间?
  • 主要区别在于您无权访问在类内部创建的支持字段。此外,您应该添加其他问题的原始代码,以便更清楚您在谈论什么区别。
  • @SeM 检查包含的链接。朱哈尔给出了答案
  • @Greg:将它包含在问题本身中是一种很好的做法。链接可能会死,此外;这很烦人;-)
  • @Greg 我很高兴我需要检查的链接不包含其他链接。

标签: c# asp.net class static resharper


【解决方案1】:

那是“语法糖”。版本

public static string value1 {get;set;} = "";

几乎完全按照前一个显式版本的方式编译

private static string _value1 = "";
public static string value1 {
    get { return _value1; }
    set { _value1 = value; }
}

会编译。编译器会为您创建支持字段并对其进行初始化。

因此,如果您不需要在 getter 或 setter 方法中做特殊的事情,我更喜欢较短的版本(所谓的 auto-property),因为锅炉更少-车牌代码。

【讨论】:

  • 酷,我认为这只是样板整洁,但想仔细检查它并没有以任何我掩饰的方式影响功能!谢谢你。我会尽快标记为答案。
猜你喜欢
  • 2015-08-13
  • 1970-01-01
  • 2010-11-29
  • 2015-10-31
  • 1970-01-01
  • 2017-12-04
  • 2023-03-18
  • 2018-08-28
  • 1970-01-01
相关资源
最近更新 更多