初始化静态字段与返回静态属性中的值get?

问题描述 投票:29回答:3

A)在下面的代码中,方法DataTools.LoadSearchList()将仅被调用一次,还是在每次访问该属性时被调用?

public static IEnumerable<string> SearchWordList
{
    get
    {
        return DataTools.LoadSearchList();
    }
}

B)这有什么区别吗?

public static IEnumerable<string> SearchWordList = DataTools.LoadSearchList();
c# .net static properties initialization
3个回答
39
投票

在您的第一个示例中,每次访问属性时都会调用LoadSearchList()。


15
投票

在第一种情况下,每次访问属性时都会调用该方法。如果将其设置为字段,则将只运行一次-初始化类型时-是否访问ever


2
投票

是的,该属性每次访问都会调用DataTools.LoadSearchList()。静态字段只会调用一次该方法。

© www.soinside.com 2019 - 2024. All rights reserved.