静态类和变量

时间:2015-01-12 19:29:00

标签: c# class variables static

好奇,

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

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

我正在使用C#。

由于

4 个答案:

答案 0 :(得分:1)

,如果您使用static关键字定义了自己的课程,则还需要对其所有成员使用static

答案 1 :(得分:1)

是。来自MSDN

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

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

答案 2 :(得分:1)

这是一种快速测试方法。复制以下代码并将其粘贴到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中,静态类只能包含静态成员。如果您想进一步阅读此内容,请点击以下链接:http://msdn.microsoft.com/en-us/library/79b3xss3.aspx

答案 3 :(得分:0)

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

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

但请看一下:

爪哇: Non-static variable cannot be referenced from a static context

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

希望它有所帮助:)