none
建议在 C# 5.0 中增加支持将方法内部的变量声明为 static 的 RRS feed

答案

  • 作为内部私有的没什么问题,多数情况下不会有人看到这些东西。(外部调用也不关心这个)。

    ps,如果一个类方法很多,建议重构这个类。不要是一个类的代码太多,现在回去看tc写程序就会感触很深了。


    family as water
    • 已标记为答案 银_河 2010年12月28日 8:59
    2010年12月26日 12:05
  • Hi 银_河 还有 Stone Z,

    谢谢你们的建议,你们可以将你们的设想发给Microsoft Connect feedback portal ,微软工程师会认真评估你们的建议。谢谢。

    Sincerely,
    Leo Liu


    Leo Liu [MSFT]
    MSDN Community Support | Feedback to us
    Get or Request Code Sample from Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    • 已标记为答案 银_河 2010年12月28日 8:59
    2010年12月28日 8:36
    版主

全部回复

  • 可以用private static 方式在类中声明,然后在方法中使用。


    family as water
    2010年12月26日 1:52
  • 我在 http://www.cnblogs.com/skyivben/archive/2010/12/25/1916996.html 中就是这么做的。但是这会造成代码的“坏味道”,因为本来这个变量是方法内部使用的,现在变量了类或结构的字段,如果这个类或结构内部有很多方法的话,人们很难搞懂这个字段到底在哪些地方使用。
    2010年12月26日 1:57
  • 作为内部私有的没什么问题,多数情况下不会有人看到这些东西。(外部调用也不关心这个)。

    ps,如果一个类方法很多,建议重构这个类。不要是一个类的代码太多,现在回去看tc写程序就会感触很深了。


    family as water
    • 已标记为答案 银_河 2010年12月28日 8:59
    2010年12月26日 12:05
  • 理想情况下,一个类的代码固然不能太多。但是现实情况是,一个类经常需要重载 System.Object 类 ToString、GetHashCode、Equals 方法。如果有实现一些接口的话,还需要实现这些接口的成员。

    举例来话,微软自己的 System.Int32 结构中至少就有几十个方法。

    所以,明明一个变量只需要在一个方法内部使用,如果仅仅是为了性能的原因提升到方法外部成为类或结构的静态字段成员的话,这就是一件很杯具的事。  :)

    总之,如果 C# 语言允许在方法内部声明静态变量的话,只要好处,没有任何坏处。

    2010年12月26日 12:20
  • Hi 银_河 还有 Stone Z,

    谢谢你们的建议,你们可以将你们的设想发给Microsoft Connect feedback portal ,微软工程师会认真评估你们的建议。谢谢。

    Sincerely,
    Leo Liu


    Leo Liu [MSFT]
    MSDN Community Support | Feedback to us
    Get or Request Code Sample from Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    • 已标记为答案 银_河 2010年12月28日 8:59
    2010年12月28日 8:36
    版主
  • Stone Z, Leo Liu

    谢谢你们的答复。

    2010年12月28日 8:58