C# 静态类和变量

C# 静态类和变量,c#,class,variables,static,C#,Class,Variables,Static,只是好奇 如果我有一个静态类,我是否也必须将变量定义为静态的,因为我已经说过该类将是静态的 这更是出于好奇,在我的静态类中,目前我还将变量定义为静态变量;然而,我想知道这是否真的有必要 我用的是C# 谢谢如果您使用的是Java,就不能从静态上下文中使用非静态变量 这也取决于你使用的语言(你应该告诉我们) 但看看这里: 爪哇: C++: 希望它有帮助:)是,如果您使用static关键字定义了类,那么您还需要对其所有成员使用static 是的。从 以下列表提供了静态类的主要功能: 仅包含静态成

只是好奇

如果我有一个静态类,我是否也必须将变量定义为静态的,因为我已经说过该类将是静态的

这更是出于好奇,在我的静态类中,目前我还将变量定义为静态变量;然而,我想知道这是否真的有必要

我用的是C#


谢谢

如果您使用的是Java,就不能从静态上下文中使用非静态变量

这也取决于你使用的语言(你应该告诉我们)

但看看这里:

爪哇:

C++:


希望它有帮助:)

,如果您使用
static
关键字定义了类,那么您还需要对其所有成员使用
static

是的。从

以下列表提供了静态类的主要功能:

  • 仅包含静态成员
  • 无法实例化
  • 是密封的
  • 不能包含实例构造函数

    • 以下是一种快速测试方法。复制以下代码并将其粘贴到IDE(Visual Studio)。然后取消注释两个注释行中的每一行,一次一行

      using System;
      using System.Collections.Generic;
      using System.Linq;
      using System.Text;
      using System.Threading.Tasks;
      
      namespace StaticTest
      {
          static class Program
          {
              /**
               * Uncomment one line at a time and compile program.
               **/
      
              //public int NonStaticVariable = 0;
              //public static int StaticVariable = 0;
      
              static void Main(string[] args)
              {
              }
          }
      }
      
      您会注意到,对于非静态变量

      “StaticTest.Program.NonStaticVariable”:无法在静态类中声明实例成员


      这是因为在.NET中,静态类只能包含静态成员。如果您想进一步了解这一点,请点击此链接:

      Static在不同的语言中有不同的含义!!!你选择哪种语言>语言标签是有原因的。添加了C#tag.C#。我的意思是,如果我将类定义为静态的(在本例中,我说我没有它的实例)。。。那么变量方面就会有区别。与将类定义为static类似,这不意味着包含的变量是静态的。在C#中,要访问静态类中的变量,必须将其声明为static,否则将无法看到它。静态类在某种程度上类似于单例类。它不是一个类的实例,而是它本身。。。不能创建静态类的实例。所以是的,它是必需的。可能是ok的副本,我想唯一的例外是CONST。我之所以这样说,是因为我定义了一个常量,并且习惯性地添加了静态变量(就像我所有的其他变量一样),但它当然不喜欢成员的这种方式(我的意思是它对常量和所有变量都有意义),我指的是属性、方法和字段。常量是隐式静态的,因此它们不需要
      static
      关键字,而且正如您所发现的,它们是禁止使用的。