C#中的静态全局变量有文件范围吗?

时间:2014-01-29 06:48:55

标签: c# c++

在C ++中,您可以定义全局变量的范围,静态关键字位于“文件范围”C#中是否相同?

谢谢!

5 个答案:

答案 0 :(得分:1)

C#没有文件范围的概念。 internal可以实现类似的功能,允许您限制声明程序集的可见性。

答案 1 :(得分:0)

我不知道文件范围是什么,但你可以在class level中定义你的变量,你可以随时在课堂内访问它。

public class MyClass 
{
   public static object SomeVariable;
   ...
}

这是C#.

中变量的最大范围

答案 2 :(得分:0)

如果你打算创建一个名为Varriables的类,然后每次调用它,如:Varriables.myNewVarriable,那么你需要做的就是创建一个名为Varriables的类,然后使用:public static

    public class Varriables
    {
          public static int myNewVarriable = 14;
    }

然后从另一个类中调用它:

    if (Varriables.myNewVarriable == 14)
    {
         Console.Write("True");
    }

    >>>True

答案 3 :(得分:0)

  

static关键字:在C ++中,static既可用于声明类级实体,也可用于声明特定于模块的类型。 在C#中,static仅用于声明类级实体。

有用的链接, C# for C++ Developers

答案 4 :(得分:0)

静态成员字段只能是公共的,内部的(仅在当前程序集和声明的朋友程序集中可见)或私有。

另外,您可以考虑嵌套类(即使是外部类外部也无法访问私有嵌套类的公共静态字段)。

保护“热门”共享成员的另一种方法(不是直接静态,但可以是静态实例的成员)是定义一个接口(可能是内部的),允许访问该成员。然后在静态实例的类中显式实现接口(将接口名称指定为成员名称的虚线前缀)。要访问此成员,授权代码必须首先将静态实例强制转换为接口。

一般来说,您只需要考虑内部访问。假设当前程序集中的代码在内部访问成员或类型方面表现良好。

也许您可以更明确地了解您的需求,我们可以找到最佳解决方案。