[英]Static Class and Variables
只是好奇,
如果我有一个静态类,我还必须将变量定义为静态,因为我已经说过这个类是静态的吗?
这更多是出于好奇,在我的静态类中,目前我也将我的变量定义为静态;但是,我想知道这是否真的是必要的。
我正在使用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中,静态类只能包含静态成员。 如果您想进一步阅读此内容,请点击此链接: http : //msdn.microsoft.com/en-us/library/79b3xss3.aspx
如果您使用的是Java,则无法使用静态上下文中的非静态变量。
而且这取决于你使用的语言(你应该告诉我们)。
但看看这里:
Java: 无法从静态上下文引用非静态变量
C ++: 静态关键字及其在C ++中的各种用途
希望能帮助到你 :)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.