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