我想组应用的设置在组更加清晰。对于这个被创建应该包含我的应用程序的部分的不同设置组静态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"]);}
}
}
问题是,我得到一个错误,说静态类型不能用作返回类型。
这个问题能解决或者我需要使用一些其他TECHNIC能够调用不同的组我的设置,如:AppSettings.AppSettingsGroupA.IpAddress或AppSettings.AppSettingsGroupB.IpAddress
感谢您的帮助,
这是怎样的一个尴尬的你正试图在这里存档什么,我没有看到真正的需要,为什么都AppSettingsGroupA
和AppSettingsGroupB
必须static
。要存档可以通过static
和AppSettingsGroupA
去除AppSettingsGroupB
刚才的所作所为......这样,你仍然可以有static
内AppSettings
性能。
public static void Main(String[] args)
{
AppSettings.GroupASettings = new AppSettingsGroupA();
AppSettings.GroupBSettings = new AppSettingsGroupB();
Console.WriteLine(AppSettings.GroupASettings.IpAddress);
Console.WriteLine(AppSettings.GroupBSettings.IpAddress);
}
public class AppSettingsGroupA
{
public IPAddress IpAddress => IPAddress.Parse("192.168.0.1");
}
public class AppSettingsGroupB
{
public IPAddress IpAddress => IPAddress.Parse("192.200.2.100");
}
注: C#6.0属性语法已使用
“否”,基本上是 - 你不能这样做。如果你只是希望他们分层次的,你可以窝在静态类型里面AppSettings
,但IMO更平常的事情将是他们只是不能是静态的。
嵌套静态版本:
public static class AppSettings
{
public static class GroupASettings
{
public static IPAddress IpAddress { ... }
public static class GroupBSettings
{
public static IPAddress IpAddress { ... }
}
}