首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么我看不到从ApplicationSettingsBase派生的类的成员'Default‘?

为什么我看不到从ApplicationSettingsBase派生的类的成员'Default‘?
EN

Stack Overflow用户
提问于 2008-10-10 18:57:48
回答 3查看 783关注 0票数 0

我使用的是.NET 3.5,我有一个类,A,标记为内部密封的partial,它派生自System.Configuration.ApplicationSettingsBase。然后,我以如下方式使用这个类的一个实例:

代码语言:javascript
复制
A A_Instance = new A();
A_Instance.Default.Save();

为什么Visual C#编译器会抱怨:

代码语言:javascript
复制
error CS0117: 'A' does not contain a definition for 'Default'
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2008-10-10 19:12:22

您可能正在寻找以下内容:

代码语言:javascript
复制
private static ServerSettings defaultInstance = ((ServerSettings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new ServerSettings())));

public static ServerSettings Default 
    {
    get { return defaultInstance; }
}

这是由visual studio生成的代码。

票数 3
EN

Stack Overflow用户

发布于 2008-10-10 20:52:26

在ApplicationSettingsBase中,.NET没有提供用于访问任何方法的“默认”成员。我没有注意到的是,'Default‘被用作A的单例。因此,gdean2323提供的示例代码给了我一些修复的指导。修复这个问题的代码需要我将以下代码添加到类A中(为了简单起见,没有必要的同步):

代码语言:javascript
复制
private static A defaultInstance = new A();
public static A Default 
{
    get
    {
        return defaultInstance;
    }
}
票数 1
EN

Stack Overflow用户

发布于 2008-10-10 19:05:54

ApplicationSettingsBase继承自SettingsBase,两者都不公开默认属性。根据编译器错误判断,您的类没有添加一个。

AFAIK C#不支持围绕单词' default‘的任何特殊语法来访问标记为默认值的属性。

你期望什么样的行为?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/192653

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档