在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);
答案 0 :(得分:1)
通常,只有在将泛型添加到C#语言之前编写的API进行交互时,才能主要明确地使用对象类型。
以下成语中的个人例子:
class NeedsToBeThreadSafe {
private static object _lock = new object();
void ThreadSafeOperation() {
lock (_lock)
{
// Perform some useful work
}
}
}
在这种情况下,我只想要_lock对象来实现锁定;它不需要任何成员或值 - 因此对象类型是合适的。