我使用的是.NET 3.5,我有一个类,A,标记为内部密封的partial,它派生自System.Configuration.ApplicationSettingsBase。然后,我以如下方式使用这个类的一个实例:
A A_Instance = new A();
A_Instance.Default.Save();为什么Visual C#编译器会抱怨:
error CS0117: 'A' does not contain a definition for 'Default'发布于 2008-10-10 19:12:22
您可能正在寻找以下内容:
private static ServerSettings defaultInstance = ((ServerSettings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new ServerSettings())));
public static ServerSettings Default
{
get { return defaultInstance; }
}这是由visual studio生成的代码。
发布于 2008-10-10 20:52:26
在ApplicationSettingsBase中,.NET没有提供用于访问任何方法的“默认”成员。我没有注意到的是,'Default‘被用作A的单例。因此,gdean2323提供的示例代码给了我一些修复的指导。修复这个问题的代码需要我将以下代码添加到类A中(为了简单起见,没有必要的同步):
private static A defaultInstance = new A();
public static A Default
{
get
{
return defaultInstance;
}
}发布于 2008-10-10 19:05:54
ApplicationSettingsBase继承自SettingsBase,两者都不公开默认属性。根据编译器错误判断,您的类没有添加一个。
AFAIK C#不支持围绕单词' default‘的任何特殊语法来访问标记为默认值的属性。
你期望什么样的行为?
https://stackoverflow.com/questions/192653
复制相似问题