什么是`new object()`用于?

时间:2017-12-26 13:02:32

标签: c# .net f#

在F#中,我们可以在使用object expressions创建新对象实例时覆盖System.Object方法。当想要使用ToString()方法快速打印时,这非常有用:

let obj = { new System.Object() with member x.ToString() = "F#" }
printfn "%A" obj

但是,我应该何时需要在C#中创建新对象,除了锁定语句?

var obj = new object();
Console.WriteLine(obj);

1 个答案:

答案 0 :(得分:1)

通常,只有在将泛型添加到C#语言之前编写的API进行交互时,才能主要明确地使用对象类型。

以下成语中的个人例子:

class NeedsToBeThreadSafe {

     private static object _lock = new object();
     void ThreadSafeOperation() {
          lock (_lock)
          {
              // Perform some useful work
          }
     }
 }

在这种情况下,我只想要_lock对象来实现锁定;它不需要任何成员或值 - 因此对象类型是合适的。