[英]What is max number of valid modifiers you can have while declaring a class in c#?
這個問題更多是出於好奇。
我所說的修飾符是指在聲明類之前添加的關鍵字。
例如
//1 2 3
public abstract partial class Foo
{
}
這有 3 個修飾符public
、 abstract
和partial
。
從這個問題的角度來看,零修飾符類似於
class Foo
{
}
聲明類名之前可以擁有的最大有效修飾符數是多少?
最大數量是...
(或 6 如果你算unsafe
)
根據here ,類聲明如下所示:
class_declaration
: attributes? class_modifier* 'partial'? 'class' identifier type_parameter_list?
class_base? type_parameter_constraints_clause* class_body ';'?
;
您可能不會將屬性視為“修飾符”,但您可能會將partial
關鍵字視為“類修飾符”,盡管它不是實際的class_modifier
。
class_modifier
的列表是:
class_modifier
: 'new'
| 'public'
| 'protected'
| 'internal'
| 'private'
| 'abstract'
| 'sealed'
| 'static'
| class_modifier_unsafe
;
我們知道最長的訪問修飾符是protected internal
,因此我們可以忽略所有訪問修飾符:
class_modifier
: 'new'
| 'abstract'
| 'sealed'
| 'static'
| class_modifier_unsafe
;
您只能選擇sealed
、 static
和abstract
,因此我們剩下 6 個“關鍵字”:
protected
internal
new
sealed
/ static
/ abstract
partial
unsafe
請注意, new
和protected internal
只能在嵌套類聲明中使用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.