C# 静态 Class 与 Resharper 建议
C# Static Class with Resharper Recommendations
第一次发帖!长期潜伏者。
我正在创建一个静态 class,这个答案非常有帮助:
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% 确定。
所以我的问题是,两者之间有什么区别吗?如果有,哪一个是最理想的?
那是 "syntactic sugar"。版本
public static string value1 {get;set;} = "";
几乎完全按照以前显式版本的方式编译
private static string _value1 = "";
public static string value1 {
get { return _value1; }
set { _value1 = value; }
}
会编译。编译器为您创建支持字段并对其进行初始化。
因此,如果您不需要在 getter 或 setter 方法中做特殊的事情,我更喜欢较短的版本(所谓的 auto-属性), 因为样板代码较少。
第一次发帖!长期潜伏者。
我正在创建一个静态 class,这个答案非常有帮助: 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% 确定。
所以我的问题是,两者之间有什么区别吗?如果有,哪一个是最理想的?
那是 "syntactic sugar"。版本
public static string value1 {get;set;} = "";
几乎完全按照以前显式版本的方式编译
private static string _value1 = "";
public static string value1 {
get { return _value1; }
set { _value1 = value; }
}
会编译。编译器为您创建支持字段并对其进行初始化。
因此,如果您不需要在 getter 或 setter 方法中做特殊的事情,我更喜欢较短的版本(所谓的 auto-属性), 因为样板代码较少。