繁体   English   中英

静态类和变量

[英]Static Class and Variables

只是好奇,

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

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

我正在使用C#。

谢谢

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

是。 来自MSDN

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

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

这是一种快速测试方法。 复制以下代码并将其粘贴到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

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

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

但看看这里:

Java: 无法从静态上下文引用非静态变量

C ++: 静态关键字及其在C ++中的各种用途

希望能帮助到你 :)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM