簡體   English   中英

C#靜態類和范圍

[英]C# Static Classes & Scope

我只是想知道為什么我不能將靜態類定義為protected,private等?

protected static class Class1 {}

編譯器給出以下錯誤消息:

命名空間中定義的元素不能顯式聲明為private,protected或protected internal

C#中的非嵌套類可以是公共的內部的,但不能受保護 protected是成員訪問修飾符,不適用於在命名空間級別定義的類型。

因為在命名空間中擁有私有或受保護的成員沒有意義。 命名空間不是像類一樣的孤立統一,因此私有成員是有意義的。 命名空間不能被繼承,因此對受保護的成員沒有用處。

您可以在另一個類中擁有私有或受保護的靜態類:

public class X {

  private static class Y { }

  protected static class Z { }

}

我只是引用C#規范中的相應子句:

頂級類型(不嵌套在其他類型中)只能具有內部或公共可訪問性。 這些類型的默認可訪問性是內部的

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM