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

问题描述 投票:0回答:1

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

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

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

var obj = new object();
Console.WriteLine(obj);
c# .net f#
1个回答
1
投票

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

以下成语的个人例子:

class NeedsToBeThreadSafe {

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

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

© www.soinside.com 2019 - 2024. All rights reserved.