在 C# 中,有没有办法将静态变量放入像 VB.Net 这样的方法中?
Static myCollection As Collection
在 C# 中,有没有办法将静态变量放入像 VB.Net 这样的方法中?
Static myCollection As Collection
为什么 C# 不支持静态方法变量?
问:在 C++ 中,可以编写一个静态方法变量,并拥有一个只能从方法内部访问的变量。C# 不提供此功能。为什么?
A: C# 没有这个特性有两个原因。
首先,通过使用类级别的静态变量可以获得几乎相同的效果,而添加方法静态变量将需要增加复杂性。
其次,当代码被重复调用或从多个线程调用时,方法级别的静态变量有些臭名昭著,而且由于定义在方法中,因此很难找到定义。
不,没有,但这与在类级别拥有静态变量有何不同?
实际上,如果您查看shared 是如何实现的,它是一个在类上创建静态字段的编译器技巧。
最接近 VB.NET 的Static
是在当前类型中创建一个字段。除此之外,C# 没有等价物。
不,CLR 不支持这一点,VB.NET 使用编译器技巧来允许它。啊。
我很确定 C# 等价物是const
:因此:
public const Collection myCollection = new Collection();
我对 VB.NET 不太熟悉,所以我可能会偏离基础,但这将允许您设置一个无法更改的变量。