c# - 静态类可以具有静态类类型的属性吗?

标签 c# static

为了更加清晰,我正在尝试将应用设置分组。为此创建了一个静态 AppSettings.cs 类,该类应包含我的应用程序各部分的不同设置组:

AppSettings
  |--AppSettingsGroupA
  |--AppSettingsGroupB
  |--AppSettingsGroupC

代码如下:

public class AppSettings
{
    public static AppSettingsGroupA GroupASettings{ get; set; }
    public static AppSettingsGroupB GroupBSettings{ get; set; }
}

public static class AppSettingsGroupA 
{
    public static IPAddress IpAddress
    {
        get{return IPAddress.Parse("192.168.0.1"]);}
    }
}

public static class AppSettingsGroupB 
{
    public static IPAddress IpAddress
    {
        get{return IPAddress.Parse("192.200.2.100"]);}
    }
}

问题是我收到一条错误消息,指出静态类型不能用作返回类型。

这个问题可以解决吗,还是我需要使用其他技术才能调用不同组中的设置,例如:AppSettings.AppSettingsGroupA.IpAddress 或 AppSettings.AppSettingsGroupB.IpAddress

感谢您的帮助,

最佳答案

“不”,基本上 - 你不能那样做。如果您只想让它们分层,您可以在 AppSettings 中嵌套静态类型,但在我看来,更常见的情况是它们不是静态的.

嵌套静态版本:

public static class AppSettings
{
    public static class GroupASettings
    {
        public static IPAddress IpAddress { ... }

    public static class GroupBSettings
    {
        public static IPAddress IpAddress { ... }
    }
}

关于c# - 静态类可以具有静态类类型的属性吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54532251/

相关文章:

c++ - Linux 中的共享内存

c# - 从任意 URL 手动实例化 Controller 实例?

c++ - static const C++ class member initialized 在链接时出现重复符号错误

c# - 在 C# 构造函数中处理损坏的输入数据的最合适方法是什么?

c# - Process.HasExited 竞争条件

javascript - 在node.js中,如何声明一个可以被master进程初始化并被worker进程访问的共享变量?

c++ - 是否可以在运行main之后初始化一个静态成员变量?

design-patterns - 充满静态方法的类的设计注意事项

c# - 如何使用 Npgsql 和 PostgreSQL 执行 ExecuteScalar 函数?

c# - AWS CloudFormation .NET 软件开发工具包