保留从方法

时间:2017-06-10 15:24:44

标签: c# variables file-access

假设我需要访问给定文件中包含的值很少次,从不同的方法,我可以在方法中包含某种布尔值来确定是否适合调用该文件?

假设我有 config.cfg 文件。在该文件中,有三个值:

string/name>max|
bool/adult>yes|
int/age>20|

方法getUserName()返回"max"的值。它通过调用文件来执行此操作:

using (StreamReader reader = new StreamReader(path))
{
    //get line beginning with string/name here
    return //string value containing name
}

我们假设我需要多次使用name的值,以及值isAdultclientAge。不是一遍又一遍地访问文件,而是以某种形式的静态变量保存所请求的值要容易得多。但是,当首次调用该方法时,此变量仍需要至少更改一次值。

我可以在里面方法getUserName()吗? 此外,这个想法甚至可能在OOP的范围内吗?它与Prefetch的概念类似吗?

2 个答案:

答案 0 :(得分:0)

创建一个静态类。像这样:

 public static class ClientConfig{

    public static string Name{get;set;}
    public static bool IsAdult{get;set;}
    public static int Age{get;set;}

     public static void Load(){
     // load your values 
    // ClientConfig.Name = name from file etc.
    }


    public static void Save(string newName, int age, bool value){
     // save your values to the config file
    }
    }

例如,当您的应用启动时,首次调用ClientConfig.Load()(或者无论何时需要检索配置数据)

答案 1 :(得分:0)

我真的希望你需要以懒惰的方式访问一个字段(即只在需要时才需要)。如果是这样,.NET就会为这种情况提供Lazy类,它也可以提供开箱即用的线程安全性:

Each

Lazy还将确保您只创建一次值(即调用初始化方法),并且稍后调用它将只返回已检索到的值。