如何在类似于vb.net中的模块的类中创建常量的最终变量但是在C#中?

时间:2015-04-15 15:45:27

标签: c# vb.net

我想在一个名为Constantes的类中的变量中创建我的所有固定字符串,它将如下所示:

class Constantes
{
    public static sealed String var1 = "variable 1";
    public static sealed String var2 = "variable 2";
}

在其他课堂上我这样做:

class main
{
    ...
    list.add(Constantes.var1);
    list.add(Constantes.var2);
}

我知道在vb.net中我们可以通过使用模块来实现这一点,但在c#中我不知道怎么做。

4 个答案:

答案 0 :(得分:3)

上课static

public static class Constantes
{
  public static string var1 = "variable 1";
  public static string var2 = "variable 2";
}

也许让你的成员const如果你想让它们保持不变(const基本上是你不能覆盖的静态成员)

public static class Constantes
{
  public const string var1 = "variable 1";
  public const string var2 = "variable 2";
}

readonly是另一种可能性,但这是针对运行时的,所以如果它们是真正的常量,const允许编译时优化(而readonly只会在运行时优化)

顺便说一句,对于我认为你的目标,你应该阅读Resources,看看是否更合适

答案 1 :(得分:3)

如果我没有误读问题,请使用const关键字:

static class Constantes
{
    public const  String var1 = "variable 1";
    public const  String var2 = "variable 2";
}

答案 2 :(得分:3)

使类静态并放入readonly关键字

public static class Constantes
{
  public static readonly string var1 = "variable 1";
  public static readonly string var2 = "variable 2";
}

答案 3 :(得分:1)

使用const关键字定义常量。

class Constantes
{
    public const String var1 = "variable 1";
    public const string var2 = "variable 2";
}

请注意static sealed无效 - sealed仅适用于虚拟行为。如果您希望某些内容永远不可更改(当然const不适合),请改用readonly

模块是底层CLR的构造,但在C#中,每个程序集只包含一个模块,并且没有办法定义不同的模块。 编辑但是,它们相同的VB Module。关于这些差异的See MSDN for more details