我可以在.net中获得类似enum的字符串功能吗?

时间:2011-11-15 08:58:05

标签: .net string list enums

我正试图找到一种方法来保存我的项目中使用的字符串列表。

所以我想说我有一个网站列表:

www.website1.com
www.website2.com
www.website3.com
www.website4.com

我希望我能得到一些类似于enums如何处理int的工作。

当有人需要检查网址时,他们会有一个他们可以选择的列表,并且能够写出类似这样的内容

WebsiteNames.Website1

有一个好的(干净的)方法吗?

3 个答案:

答案 0 :(得分:3)

你可以使用这样的静态类:

public static class WebSiteNames
{
   public readonly string Website1 = "www.website1.com";
   public readonly string Website2 = "www.website2.com";
}

然后你就可以使用它:

WebSiteNames.Website1

如果您查看T4,您甚至可以自动生成这样的文件,这样您就不必担心如果有人在代码中更改某些内容而手动编写它或运行时错误。

答案 1 :(得分:2)

这样的课应该这样做:

public static class WebSiteNames
{
  public static readonly string Website1 = "www.website1.com";
  public static readonly string Website2 = "www.website2.com";
}

如果某个字段是公开公开的,通常最好将其设置为静态readonly而不是const,因为字符串值的任何更改都需要重新编译所有相关模块才能获得更改。

答案 2 :(得分:0)

您可以像这样使用struct

public struct WebSiteNames
{
    public const string Website1 = "www.website1.com";
    public const string Website2 = "www.website2.com";
    public const string Website3 = "www.website3.com";
    public const string Website4 = "www.website4.com";
}

由于structvalue type,因此其用法类似于enums