c# - Microsoft 内部属性 - 该属性没有 setter

标签 c# visual-studio-2012 ilspy

当我从 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/

相关文章:

c# - 位图克隆问题

c# - 复制 IEnuemrable<T> - linq Select 未按预期运行

c# - 如何从 xml 中获取数据,通过 linq,c#

c++ - 在调试期间获取 C++ 运行时类型?

c# - 如何让 VS 不复制我的 C# 文件

.net - Mono 实现 CLR 吗?或者至少有一些非托管内部调用?或无?

c# - 生成所有满足特定条件的数字

C++ lambda 代表

c# - ILSpy 中显示的奇怪的类成员语法

.net-core - .Net Core 3 自包含的单个可执行文件可以反编译吗?