Bli*_*tzz 46 c# static default properties
我喜欢c#,但为什么我可以这样做:
public static bool Initialized { private set; get; }
Run Code Online (Sandbox Code Playgroud)
或这个 :
public static bool Initialized = false;
Run Code Online (Sandbox Code Playgroud)
但不是两者兼而有之?
我只需要为我的变量(私有集)设置访问级别,我需要在启动时将其设置为false.我不想制作那个无聊的私有_Initialized变量,它将由公共Initialized var的getter返回.我喜欢我的代码很漂亮.(注意:我的变量是静态的,它不能在构造函数中初始化).
谢谢
Cor*_*old 53
您可以使用静态构造函数
static MyClass()
{
Initialized = false;
}
Run Code Online (Sandbox Code Playgroud)
但是,正如其他人所提到的,bool的默认值将为false.
Meh*_*eza 19
从C#6开始:
public static bool Initialized { private set; get; } = false;
Run Code Online (Sandbox Code Playgroud)
你可以这样做:
public static bool Initialized { private set; get; }
Run Code Online (Sandbox Code Playgroud)
由于bool默认情况下值始终为false,因此无需初始化它.
如果默认情况下需要这个,或者要有更复杂的逻辑,则需要在静态构造函数中执行此操作或使用支持字段.
至于"我喜欢我的代码是美丽的" - 就个人而言,对于非默认初始化,我认为这就像"美丽":
private static bool initialized = true;
public static bool Initialized { get { return initialized; } }
Run Code Online (Sandbox Code Playgroud)
这使得非默认的初始化非常明显,这不是一件坏事.
| 归档时间: |
|
| 查看次数: |
33670 次 |
| 最近记录: |