在类字段中使用委托?

时间:2013-12-03 11:14:28

标签: c#

有时我会在C#类中看到类似的内容:

private CultureInfo _culture = () => Thread.CurrentThread.CurrentCulture;

我尝试了这个,但它没有编译......我的问题是:

  1. 我应该如何更改以进行编译?

  2. 此代码与以下内容有何区别:

    private CultureInfo _culture = Thread.CurrentThread.CurrentCulture;

  3. 谢谢你, 米格尔

2 个答案:

答案 0 :(得分:3)

如果您使用

private Func<CultureInfo> _culture = () => Thread.CurrentThread.CurrentCulture;

您可以在实际时刻获得实际线程的当前文化信息。

如果你这样做,那么

private CultureInfo _culture = Thread.CurrentThread.CurrentCulture;

你总是从初始化时初始化的线程中获取文化信息。

作为改进,使用属性在使用函数初始化后封装_culture

private CultureInfo Culture 
{
    get { return _culture(); }
}

这为您提供了一个类似于使用的成员变量。

答案 1 :(得分:1)

使用此.. ..

private Func<CultureInfo> _culture = () => Thread.CurrentThread.CurrentCulture;