当我从 System.Internal.HandleCollector
类中遇到这个问题时,我正在使用 ILSpy 仔细研究一些 System 类:
internal sealed class HandleCollector
{
... bunch of stuff removed ...
internal static event HandleChangeEventHandler HandleAdded
{
[MethodImpl(MethodImplOptions.Synchronized)]
add
{
HandleCollector.HandleAdded = (HandleChangeEventHandler)Delegate.Combine(HandleCollector.HandleAdded, value);
}
[MethodImpl(MethodImplOptions.Synchronized)]
remove
{
HandleCollector.HandleAdded = (HandleChangeEventHandler)Delegate.Remove(HandleCollector.HandleAdded, value);
}
}
... bunch of stuff removed ...
}
当 VisualStudio 提示(我复制了该类)该属性没有 setter 时,Microsoft 如何编译它?有人能解释一下为什么这有效,但我的 VS 副本却提示(构建标志?)?
This property does not have a setter
错误出现在每个 HandleCollector.HandleAdded =
语句上。
最佳答案
我们不需要猜测 MS 源代码是什么,因为它是可用的 here .
这是来自 HandleCollector.cs 的 HandleAdded
声明:
internal static event HandleChangeEventHandler HandleAdded;
这是一个自动实现的事件。问题出在 ILSpy 的反编译上。也许您应该提交一个错误。
关于c# - Microsoft 内部属性 - 该属性没有 setter ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15315131/