在C#匿名类型中生成的奇怪属性类型是什么?

时间:2011-01-03 11:16:26

标签: c# .net anonymous-types

在C#

中观察以下简单的匿名类型
new { X = 5 };

在Reflector(省略对象方法覆盖)中看到的相应编译器生成的代码是:

[CompilerGenerated]
internal sealed class <>f__AnonymousType0<<X>j__TPar>
{
    // Fields
    [DebuggerBrowsable(DebuggerBrowsableState.Never)]
    private readonly <X>j__TPar <X>i__Field;

    // Methods
    [DebuggerHidden]
    public <>f__AnonymousType0(<X>j__TPar X)
    {
        this.<X>i__Field = X;
    }

    // Properties
    public <X>j__TPar X
    {
        get
        {
            return this.<X>i__Field;
        }
    }
}

我的问题是WOE(地球上的什么)<X>j__TPar?该类型在Reflector(双关语)中无处反映。

1 个答案:

答案 0 :(得分:2)

<X>j__TPar<>f__AnonymousType0类型定义中使用的泛型参数的名称。确实比T更不易读,但保证永远不会与另一个名字冲突。