簡體   English   中英

監控為普通班

[英]class Monitor as normal class

我正在閱讀此鏈接: http : //eycenlearnstation.blogspot.nl/

他們在Visual Studio 2005博客上使用

在博客的某個地方,他們描述了這一行:

 Monitor myMonitor = new Monitor(ipAddr);

但是Monitor是靜態類。 所以我的問題是:

在Visual Studio 2005中,Monitor類不是靜態類嗎?

還是在博客中只是一個錯誤?

謝謝

我不知道哪個Monitor類正在討論整篇文章,但這不是Monitor線程方法。 System.Threading.Monitor始終沒有公共構造函數。

在.NET 1.x中,它不是一個靜態類,因為根本沒有靜態類 (它們是在.NET 2.0中引入的)。

您可以在舊的MSDN文檔(C#2.0語言和編譯器的新增功能)中看到這一點

靜態類靜態類是聲明包含無法實例化的靜態方法的類的一種安全便捷的方法。 在C#1.2版中,您應將類構造函數定義為私有,以防止實例化該類。

並且,@ Jcl添加了一些注釋:

實際上,.NET 1.1的System.Threading.Monitor確實有一個私有構造函數(來自doc: 無法創建Monitor類的實例。

System.Threading.Monitor類在.NET Framework( .NET 2.0文檔 )上一直是並且一直是靜態的,但是,在鏈接的教程中,它清楚地顯示了正在創建一個名為Monitor的不同類。

這是該頁面的引文:

Monitor對象有什么用? 那是什么名字空間? 好吧,這就是我們接下來要創建的類。

在該文本下有一個實現:

class Monitor
{
  // Will store the IP address passed to it
  IPAddress ipAddress;

  // The constructor sets the IP address to the one retrieved by the instantiating object
  public Monitor(IPAddress address)
  {
      ipAddress = address;
  }
  /* ... etc. ... */

更新根據其他答案,似乎在.NET 1.1中不是靜態的(因為.NET 1.1沒有靜態類,但是其所有方法也都是靜態的)...那么,其余的答案是對,它只是不引用.NET Framework類

我在頁面上的類定義中看到了這一點; 它不是靜態的,因此可以使用new關鍵字實例化:

class Monitor
{
    // Will store the IP address passed to it
    IPAddress ipAddress;

    // The constructor sets the IP address to the one retrieved by the instantiating object
    public Monitor(IPAddress address)
    {
        ipAddress = address;
    }
...

The System.Threading.Monitor類在.NET 1.0中不是靜態的,因為在該版本中沒有靜態類,因此在引入靜態類時在.NET 2.0中將其標記為靜態:

來源MSDN

這是為了回答您的問題。 作為該主題中使用的Monitor類,它是一個用戶定義的類,名為Monitor

暫無
暫無

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

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