我正在阅读此链接:http://eycenlearnstation.blogspot.nl/。
他们在博客visual studio 2005上使用
在博客的某处,他们描述了这一行:
Monitor myMonitor = new Monitor(ipAddr);
但是Monitor是一个静态类。所以我的问题是:
在Visual Studio 2005中,Monitor类不是静态类吗?
或者这只是博客中的一个错误?
谢谢
答案 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