C#中的静态变量

nor*_*ndo 15 c# variables static-variables

在C#中,有没有办法将静态变量放在像VB.Net这样的方法中?

Static myCollection As Collection
Run Code Online (Sandbox Code Playgroud)

chi*_*s42 21

为什么C#不支持静态方法变量?

问:在C++中,可以编写一个静态方法变量,并且只能从方法内部访问变量.C#不提供此功能.为什么?

答:C#没有这个功能有两个原因.

首先,通过使用类级静态可以获得几乎相同的效果,并且添加方法静态将需要增加复杂性.

其次,方法级别静态有些臭名昭着,在重复调用代码或从多个线程调用代码时会出现问题,并且由于定义在方法中,因此很难找到定义.

- msdn c#faq

  • >"在重复调用代码或从多个线程调用代码时导致问题的臭名昭着" - 很有趣,因为VB.Net实现被认为是线程安全的. (4认同)
  • 这是如何得到Checked作为最佳答案.答案很简单.据说,但仍然没有.这里提供的答案是Eric Gunnerson引用的是Mircosoft的警告.它很简单.顺便说一句,Java已经拥有这种能力,因为至少1.2和C++只要我记得.你会认为混合使用C++,Java和VB的语言会支持它们三者共有的东西.如果三种语言支持这一点,那么必须有充分的理由,并且抛弃这两种原因是蹩脚的,而且它们显然隐藏了某些东西. (3认同)

Jos*_*rke 5

没有,但是在类级别有一个静态变量,这有什么不同?

实际上,如果你研究共享是如何实现的,那么在类上创建一个静态字段就是一个编译技巧.