感到困惑,可能缺少一些简单的方法。

我有

var q = new Queue<object>();
lock (q.SyncRoot)
{
    ...
}

我懂了
Queue<T> does not provide a defintion for SyncRoot blah blah...

但是,Queue<T>实现了ICollection,它将SyncRoot定义为公共(public)属性。

因此,首先,为什么要隐藏它。其次,如何隐藏正在实现的接口(interface)的属性?

最佳答案

您可以通过implementing it explicitly隐藏该属性:

    object MyQueue.SyncRoot { get; set; }

它是隐藏的because it's deprecated:

关于c# - 如何/为什么SyncRoot隐藏在Queue <T>上?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12746772/

10-08 23:14