簡體   English   中英

我們可以在靜態類中擁有私有構造函數嗎?

[英]Can we have a private constructor in a static class?

我懷疑靜態類可以包含私有構造函數。

靜態類不能包含實例構造函數

http://msdn.microsoft.com/en-us/library/79b3xss3.aspx

以下列表提供了靜態類的主要功能:

  • 僅包含靜態成員。
  • 無法實例化。
  • 是密封的。
  • 不能包含實例構造函數。

靜態類不能有任何實例構造函數(參見CS0710 ),無論是公共的,私有的,受保護的還是內部的。

有關詳細信息,請參閱以下文章。

靜態類和靜態類成員(C#編程指南)

這個構造函數會做什么? 該類是靜態的,因此它永遠不會被實例化。 您可以在非靜態類上使用靜態構造函數來初始化靜態字段,但在靜態類中,唯一有意義的構造函數是靜態構造函數,並且它被稱為CLR。

另外Jon Skeet發布了一篇關於靜態類初始化時間的文章 (通常是在第一次使用時初始化,但有時你想在程序啟動時初始化它)和.net 4中可能的更改。

你的疑問是正確的。

靜態類只能有一個靜態構造函數,而public / private不適用,因為你的代碼永遠不能調用這個構造函數(CLR會這樣做)。

因此,您可能不會在靜態構造函數上使用訪問修飾符(public / private / ...)。

規則是靜態類,不能有實例構造函數

暫無
暫無

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

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