代码之家  ›  专栏  ›  技术社区  ›  Cheeso

在C#中,将类标记为静态的目的是什么?

  •  24
  • Cheeso  · 技术社区  · 14 年前

    我环顾四周,看到了一些类似的问题,但没有一个是这样的。

    5 回复  |  直到 14 年前
        1
  •  28
  •   JaredPar    14 年前

    将类标记为static是一种声明性语句,您只希望该类型具有static和const成员。这是由编译器强制执行的,防止您意外地将实例方法添加到类型中。

    其他优势

    • 扩展方法只能在静态类中定义
    • 阻止用户创建类的实例
        2
  •  7
  •   Jay Bazuzi Buck Hodges    14 年前

    将一个类标记为 static 给你带来两件重要的事情。

    • 编译器验证,您只需将 静止的 班上的成员。

    • 静止的 成员。

    该特性是针对NDPV1.0中的一个bug而发明的,其中 a un-callable non- static member was included in the System.Environment class .

        3
  •  6
  •   Yuriy Faktorovich    14 年前

    如果要编写扩展方法,必须使用静态类。否则将显示该类永远不会有任何实例数据。

        4
  •  5
  •   Hans Passant    14 年前

    同样按照约定,扩展方法必须是静态类的静态成员。VB.NET则不同,它需要[Extension]属性。

        5
  •  1
  •   Jorge Ferreira    14 年前

    如果要强制类仅包含静态方法(典型的帮助器类),则可以将其标记为静态。如果你放了一个实例方法,编译器会抱怨——这很好。在.NET framework的第1版中,有一个类,不记得是哪一个,该类只提供静态方法。意外地,其中一个方法没有获得静态修改器。因为这个功能在发布后很晚才被发现时并不存在。他们确实将构造函数设置为私有,因此无法使用该方法。