静态 Class 和变量

Static Class and Variables

只是好奇,

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

这更多是出于好奇,在我的静态 class 中,目前我也将我的变量定义为静态;但是,我想知道这是否真的有必要。

我正在使用 C#。

谢谢

如果您正在使用 Java,则不能使用来自静态上下文的非静态变量。

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

但是看看这里:

Java: Non-static variable cannot be referenced from a static context

C++: The static keyword and its various uses in C++

希望对您有所帮助:)

,如果你用static关键字定义了你的class,你还需要使用static成员。

是的。来自 MSDN

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

  • 仅包含静态成员。
  • 无法实例化。
  • 被封印了。
  • 不能包含实例构造函数。

这是一个快速测试的方法。复制以下代码并将其粘贴到您的 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': cannot declare instance members in a static class

这是因为,在 .NET 中,静态 class 只能包含静态成员。如果您想进一步阅读本文,请遵循此 link:http://msdn.microsoft.com/en-us/library/79b3xss3.aspx