在使用.NET框架方面,我并不是新手,我已经写了几年利用它的C#软件。然而,有一天我想到了一个问题...... C#与.NET框架如何区分,例如lock
和object
这样的关键字?像object derp = new object();
这样的语句会解析为System.Object derp = new System.Object();
,但是System.Object难道不是由.NET定义的吗?即使它是在mscorlib中定义的,这意味着一个语言特性依赖于一个库。同样的情况也发生在lock
语句上,它会解析为对Monitor.Enter()
和Montior.Exit()
的调用。显然,没有使用.NET功能,任何非玩具程序都将变得愚蠢/不可能,但是一个语言如何依赖于一个在很大程度上以这种语言编写的库呢?
lock
是C#关键字。Monitor
是C#类,是.NET Framework的一部分。 C#编译器会用Monitor.Exit()
和Monitor.Enter()
替换lock
块。 - Zein Makki