如果未指定,C# 类是不是默认为实例类或静态类?
Posted
技术标签:
【中文标题】如果未指定,C# 类是不是默认为实例类或静态类?【英文标题】:Do C# classes default to instance or static classes if not specified?如果未指定,C# 类是否默认为实例类或静态类? 【发布时间】:2018-08-23 08:29:11 【问题描述】:当在 C# 中声明一个类而不指定该类是静态类还是非静态类时,它将默认为哪个?
编辑:这是我根据这个讨论写的一篇文章。
https://hackernoon.com/c-static-vs-instance-classes-and-methods-50fe8987b231
【问题讨论】:
除非您使用static
关键字,否则您需要创建它的新实例。
没有办法指定一个类是“实例类”。
这应该需要不到一分钟的时间来测试。你的exampleClass
是静态的吗?
我不是在测试它,只是想了解一下理论概念。
@MBaka 为什么试图理解它会阻止你测试它?测试事物是理解事物的好方法。
【参考方案1】:
如果您不将类声明为静态,则其成员可以是静态的或非静态的。 静态类只能有静态成员。 您只能在类的实例上调用非静态成员。 您只能在类本身上调用静态成员。
另外,在你的类声明中,没有括号。
【讨论】:
删除类声明 反应很好。超级有帮助。【参考方案2】:如果未指定“静态”,则需要使用类的实例(除非成员本身指定为静态)。
如果类未声明为静态,客户端代码可以通过创建分配给变量的对象或实例来使用它。
发件人:https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/classes-and-structs/classes
【讨论】:
不太正确,您不需要创建它的实例。例如,非静态类仍然只能包含静态成员。 反应很好。【参考方案3】:除非您另有说明,否则类始终是实例类
【讨论】:
以上是关于如果未指定,C# 类是不是默认为实例类或静态类?的主要内容,如果未能解决你的问题,请参考以下文章