【发布时间】:2017-04-21 09:42:24
【问题描述】:
我遇到过这段代码,看起来原始开发人员试图使用静态字符串来缓存静态类中的值。
public static class GetStringFromSomeProcess
{
private static string theAnswer;
public static string GetString
{
get
{
if(theAnswer == null)
{
theAnswer = GoGetTheAnswerFromALongRunningProcess();
}
return theAnswer;
}
}
}
据我所知,这是行不通的,因为您无法实例化 GetStringFromSomeProcess 类,所以每次使用 GetString 时都会调用 GoGetTheAnswerFromALongRunningProcess。我错过了什么吗?
【问题讨论】:
-
为什么需要实例化
GetStringFromSomeProcess?第一次调用GetString后theAnswer将不再为null,因此不再调用具有可怕名称的方法
标签: c# caching static-methods