class Monitor as normal class

时间:2016-07-23 09:17:57

标签: c#

我正在阅读此链接:http://eycenlearnstation.blogspot.nl/

他们在博客visual studio 2005上使用

在博客的某处,他们描述了这一行:

 Monitor myMonitor = new Monitor(ipAddr);

但是Monitor是一个静态类。所以我的问题是:

在Visual Studio 2005中,Monitor类不是静态类吗?

或者这只是博客中的一个错误?

谢谢

4 个答案:

答案 0 :(得分:2)

我不知道哪个Monitor课程正在讨论整篇文章,但它不是Monitor线程方法。 System.Threading.Monitor始终没有公共构造函数。

在.NET 1.x中不是静态类,因为根本没有静态类(它们是在.NET 2.0中引入的)。

您可以在this old MSDN document (What's New in the C# 2.0 Language and Compiler)上看到:

  

静态类   静态类是一种安全便捷的方式   声明一个包含不能的静态方法的类   实例化。 在C#1.2版中,您将定义该类   构造函数为private,以防止实例化类。

并且@Jcl在一些评论中添加了:

  

事实上,.NET 1.1的System.Threading.Monitor确实有私有   构造函数(来自doc: Monitor类的实例不能   创建

答案 1 :(得分:2)

System.Threading.Monitor类在.NET Framework上始终是静态的(documentation for .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类

答案 2 :(得分:1)

我在页面上看到了这个类定义;它不是静态的,因此可以使用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;
    }
...

答案 3 :(得分:0)

The System.Threading.Monitor类在.NET 1.0中不是静态的,因为在该版本中没有静态类,当引入静态类时,它在.NET 2.0中被标记为静态:

来源MSDN

这是回答你的问题。作为主题中使用的Monitor类,它是一个名为Monitor

的用户定义类