如何在C#中构建一组常量变量

5
如何在C#中创建一组常量变量?
例如:
IconType {
    public constant string folder = "FOLDER";
    public constant string application = "APPLICATION";
    public constant string system = "SYSTEM";
}

那么我需要像这样使用它 IconType.system 但我不想像IconType type = new IconType()那样进行声明,我希望直接访问其变量。

这就像在Java中的JOptionPanel一样,当我想要显示图标时,我只需要调用JOptionPane.WARNING_MESSAGE

5个回答

16

只需在类中定义它们,由于const隐式静态,因此您可以使用它们。

class IconType
{
    public const string folder = "FOLDER";
    public const string application = "APPLICATION";
    public const string system = "SYSTEM";
}

稍后,您可以像这样使用它们:

Console.WriteLine(IconType.folder);

你可能会看到webarchive页面:为什么我不能同时使用静态和常量? 由Jon Skeet编写。

1
有很多重复的答案,但只有一个提供了美味的“隐式静态”细节。 - Gusdor
谢谢你,@Habib。我认为这个答案更适合我的情况,尽管其他的答案也可能有效。 - overshadow
@overshadow,欢迎您,您也可以使用帕斯卡命名法来命名您的const。请参考此问题了解.Net常量的命名约定 - Habib
我之前尝试过这个,但是我把一个公钥世界放在IconType类之前,但它没有起作用。你知道为什么吗?为什么我不能在类之前放一个public? - overshadow
我也更喜欢将类设为静态的;这样可以使意图更加清晰。 - Leyu
显示剩余4条评论

1
似乎你想使用枚举?
public enum IconType {
    Folder,
    Application,
    System
}

“这样做不够吗?”

1
你需要一个类。
   public static class IconType
    {
        public const string folder = "FOLDER";
        public const string application = "APPLICATION";
        public const string system = "SYSTEM";
    }

0

1
枚举不能是字符串。 - Gusdor
@VenkatRenukaPrasad 为什么要这样做?为什么要增加获取字符串值所需的代码量? - Gusdor
1
你说得有道理。他为什么不使用静态类呢? - Ren
1
我同意,我点赞了Habib,但是不知道这个应用程序的完整用途,Enum可能很好用 - 让OP决定采取哪种方法吧。 - Christian Phillips

0
你可以建立一个包含常量的类,这些常量隐式地是静态的,因此可以在不需要类型实例的情况下访问。
class IconType
{
    public const string folder = "FOLDER";
    public const string application = "APPLICATION";
    public const string system = "SYSTEM";
}

在大多数 C# 项目中,您还可以使用 Visual Studio 为您创建的强类型设置。

Properties.Settings.Default


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接