gpt4 book ai didi

C# 访问方法重定向

转载 作者:行者123 更新时间:2023-11-30 13:34:13 25 4
gpt4 key购买 nike

伙计们,我真的很想问这个问题,但我卡住了,我想不出解决方案:

我找到了一个 IniParser 库,用于从文件中解析设置。但是默认方法是这样的:

 FileIniDataParser parser = new FileIniDataParser();
//Parse the ini file
IniData parsedData = parser.LoadFile("TestIniFile.ini");
parsetData['some']['settings'];

不过在我的项目中,我不想到处调用解析器,所以我创建了一个在启动时加载文件的类,我所要做的就是访问实例。这就是我想要的:

namespace my_project
{
public class settings
{
public IniData ini()
{
string login = "Settings.ini";
FileIniDataParser parser = new FileIniDataParser();

// Parse the ini file with the settings
IniData settings = parser.LoadFile(login);
//*strptr = settings;
return settings;
}
}
}

所以我可以像这样访问设置:

settings.ini['some']['settings'];

位我得到一个错误:

Error 329 'settings.ini()' is a 'method' but is used like a 'type'

我知道它可能太菜鸟了,但我目前正在尝试学习 C# 和像这样的实验比阅读一本 500 页的书所教的还多。

最佳答案

您将“ini”定义为一种方法。为了按原样使用它,您需要键入:

settings.ini()['some']['settings'];

你可以 change this to a property解决此问题。

但是,需要注意一件事 - 按照您的编写方式,每次调用 ini() 时,您都在创建(和访问)一个新实例。如果这是一个单一的共享实例,您可能希望使用带有静态属性的惰性初始化:

public class Settings
{
private static IniData ini;
public static IniData Ini
{
get
{
if (ini == null)
{
string login = "Settings.ini";
FileIniDataParser parser = new FileIniDataParser();

ini = parser.LoadFile(login);
}
return ini;
}
}
}

这样,每次调用都将使用同一个实例,并且只会创建一次 IniData 类。然后你可以写:

Settings.Ini['some']['settings'];

关于C# 访问方法重定向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3660421/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com