.net VB共享到C#static

.net VB共享到C#static,.net,vb.net,c#-4.0,migration,.net,Vb.net,C# 4.0,Migration,我在我的项目中进行代码转换,遇到一条语句,该语句给出了以下错误:“类型初始值设定项引发了异常静态类” 在Vba中,它可以完美地工作 Shared Sub New() _instance = New Setting End Sub 我使用一些工具将其转换为c#并转换为这条语句,这条语句给出了错误 public const string id = "Resources"; private static PeModelSetting _instance; static Setting() {

我在我的项目中进行代码转换,遇到一条语句,该语句给出了以下错误:“类型初始值设定项引发了异常静态类”

在Vba中,它可以完美地工作

Shared Sub New()
    _instance = New Setting
End Sub
我使用一些工具将其转换为c#并转换为这条语句,这条语句给出了错误

public const string id = "Resources";
private static PeModelSetting _instance;
static Setting()
{
    _instance = new Setting();
}

// and access the function like this
Setting.GetConfig(Setting.id)
有人知道如何解决这个问题吗?我试图通过将c#代码更改为非静态构造函数来对其进行更改,这将停止向我提供错误,但问题是此设置类中的所有方法都是静态类型,这将给我另一个错误“无法访问实例引用”


我可以将所有方法更改为非静态,但问题是有数百个文件正在访问这个类,修改所有这些都是一件痛苦的事情。还有其他方法可以做到这一点吗?最好是设置类可以保持静态。

设置类的实例级默认构造函数中会发生什么?该类包含哪些字段初始值设定项(静态字段和实例级字段都包含)?只有一个静态构造函数且_instance是变量私有静态设置_instance;id或任何其他字段是否有初始值设定项?请注意,第一个代码是VB.NET,而不是VBA。您必须发布更多的代码(至少,这个构造函数的类的定义和
\u instance
id
的声明),以便理解您“误解”的内容。