上课:
class MyClass
{
private static TimeSpan myField = TimeSpan.FromSeconds(5);
public void SomeMethod()
{
// usage of field
}
}
myField字段初始化内联。我应该为它选择什么修饰符,静态(如上所述)或只读?
答案 0 :(得分:0)
static
- 这意味着它属于类而非实例。
readonly
- 这意味着一旦定义了 - 就无法改变。
const
- 在C语言中只是内联常量#define
。
这些是不同的东西,你无法比较它们。
ADD。只有原始类型可以是const
。在您的情况下static readonly
。
答案 1 :(得分:0)
在6.0之前的C#中,您将实现由static readonly
属性包装的static
字段。
class MyClass
{
// A read-only property that can only be set with a property initializer
// or in a static constructor
private static TimeSpan MyProperty { get; } = TimeSpan.FromSeconds(5);
public void SomeMethod()
{
// usage of field
}
}
...在编译期间实现了后备static readonly
字段。