SORU
24 Mart 2010, ÇARŞAMBA


VS hakkında 'sihirli adları' hata ayıklayıcı;

Eğer Reflektör kullandıysanız, muhtemelen fark C# derleyici türleri, yöntemleri, alanlar ve yerel değişkenler oluşturur, bu hak özel hata ayıklayıcı tarafından görüntü. Örneğin, yerel Değişkenler ile başlayan 'CS$' kullanıcıya görüntülenmez. Anonim yöntemler kapatılması türleri, otomatik özellikleri alanlara destek veren diğer özel adlandırma kuralları vardır.

Bu adlandırma kuralları hakkında bilgi edinmek için nerede? sorum şu: Herkes bazı belgeleri biliyor mu?

Amacım PostSharp 2.0 kullanın aynı kuralları yapmaktır.

CEVAP
24 Mart 2010, ÇARŞAMBA


Bu derleyici belgesiz uygulama ayrıntıları ve herhangi bir zamanda değiştirilebilir.

İyi bir adam olduğum için ancak burada bazı ayrıntılar şunlardır:

Eğer iyileştirici kaldırır kullanılmayan yerel bir değişken varsa, PDB ki hata ayıklama bilgisi için biz yayarlar. Hata ayıklayıcı kaynak ikili kod temsil edilmedikleri bilir ki bu tür değişkenler üzerine soneki __Deleted$ soktuk.

Geçici değişken yuvaları derleyici tarafından tahsis X$Y, X "geçici" ve Y geçici sayısını şimdiye kadar ayrılmış. nerede desen CS$ile adları verilir Geçici türü vardır:

0 --> short lived temporaries
1 --> return value temporaries
2 --> temporaries generated for lock statements
3 --> temporaries generated for using statements
4 --> durable temporaries
5 --> the result of get enumerator in a foreach
6 --> the array storage in a foreach
7 --> the array index storage in a foreach.  

8 ve 264 arasında geçici bir tür çok boyutlu diziler için dizi dizini ek depo.

264 yukarıda geçici bir çeşit geçici sabit deyimi bir dize sabitleme karıştığı için kullanılır.

Derleyici adları için üretilen özel:

1 --> the iterator state ("state")
2 --> the value of current in an iterator ("current")
3 --> a saved parameter in an iterator
4 --> a hoisted 'this' in an iterator ("this")
5 --> a hoisted local in an iterator
6 --> the hoisted locals from an outer scope
7 --> a hoisted wrapped value ("wrap")
8 --> the closure class instance ("locals")
9 --> the cached delegate instance ("CachedAnonymousMethodDelegate")
a --> the iterator instance ("iterator")
b --> an anonymous method
c --> anonymous method closure class ("DisplayClass")
d --> iterator class
e --> fixed buffer struct ("FixedBuffer")
f --> anonymous type ("AnonymousType")
g --> initializer local ("initLocal")
h --> query expression temporary ("TransparentIdentifier")
i --> anonymous type field ("Field")
j --> anonymous type type parameter ("TPar")
k --> auto prop field ("BackingField")
l --> iterator thread id
m --> iterator finally ("Finally")
n --> fabricated method ("FabricatedMethod")
o --> dynamic container class ("SiteContainer")
p --> dynamic call site ("Site")
q --> dynamic delegate ("SiteDelegate")
r --> com ref call local ("ComRefCallLocal")
s --> lock taken local ("LockTaken")

Üreten büyülü adları deseni: P<N>C__SI:

  • P önbelleğe alınan delegeler ve görüntü sınıf örnekleri için CS$, aksi takdirde boş.
  • N orijinal adı herhangi bir şey ile ilişkilidir
  • C s ile karakteri 1 Yukarıda listelenmiştir
  • Açıklayıcı bir sonek S ("", "devletin meta okurken", vb.) yukarıdaki tabloda var gerek yok o kadar ezberledim. güncel
  • İsteğe bağlı benzersiz bir numara

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • jpmkm1

    jpmkm1

    4 NİSAN 2008
  • Kontor.TV

    Kontor.TV

    14 Mart 2006
  • Paul Schroder

    Paul Schrode

    30 Kasım 2007