2012-09-08 5 views
0

Я просматривал источников PresentationCore.dll с помощью DotPeek, когда я нашел это:Что означают угловые скобки при использовании в имени члена в C#?

// Type: MS.Internal.TtfDelta.CMAP_HEADER 
// Assembly: PresentationCore, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 
// Assembly location: D:\Windows\Microsoft.NET\assembly\GAC_64\PresentationCore\v4.0_4.0.0.0__31bf3856ad364e35\PresentationCore.dll 

using System.Runtime.CompilerServices; 
using System.Runtime.InteropServices; 

namespace MS.Internal.TtfDelta 
{ 
    [NativeCppClass] 
    [StructLayout(LayoutKind.Sequential, Size = 4)] 
    internal struct CMAP_HEADER 
    { 
    private short <alignment member>; 
    } 
} 

Что "private short <alignment member>" означает?

+1

Я могу только подумать, что это что-то добавило DotPeek. – ChrisF

+0

Да, это недействительно в качестве исходного кода на C#. –

ответ

1

Иногда дизассемблер не знает, что представляет собой элемент кода, и он будет использовать «угаданный» тип.

Дисассемблеры предоставляют нам псевдокод, хотя он очень точен в случае использования dotPeek в .NET Framework, он по-прежнему не является «реальным» кодом, как вызов base.ctor в следующем классе HashEntry:

private class HashEntry 
{ 
    public string[] names; 
    public ulong[] values; 

    public HashEntry(string[] names, ulong[] values) 
    { 
    base.\u002Ector(); 
    this.names = names; 
    this.values = values; 
    } 
} 

, который я принял от mscorlib, демонстрирует это совершенно.