2010-02-27 20 views

cevap

22

Temel olarak, yalnızca farklı derlemelerdeki aynı tam nitelikli adla (aynı ad alanı, aynı tür adı) iki tür kullanmak istediğinizde gerçekten buna ihtiyacınız vardır. Her bir derleme için farklı bir takma ad bildirirsiniz, böylece bu takma adla onlara başvurabilirsiniz.

Tabii

sen :)

Anson Horton ile başlamak için bu durumla karşılaşmaktan kaçınmak için çalışmalısınız, demek bu konuda good blog post sahiptir.

+0

Eklemek gerekirse - ekledikten sonra bile comsumer * .cs dosyasının üstündeki diğer ad bildirimi, derleyici varsayılan olarak kullanıyorum türünü (bu derlemede mevcut olan) aramaz .Compiler'ın varsayılan davranışı her zaman geçerli sınıfları ve türleri aramaktır. ve 'global' takma adlarına sahip başvurulan derlemeler. extern takma adıyla başlayan tam nitelikli bir tür adı kullanarak son bulurum. extern alias bildirimi 'extern alias WidgetsVendor1; ve hala kod yazıyordum var wid = new WidgetsVendor1.Widgets.Widget();'. Basitçe yapamam -var wid = new Widgets.Widget() ; – RBT

+1

@RBT: Hayır, yalnızca * * takma adlar *. Ama sonra WidgetsVendor1.Widgets kullanarak '' yazabilir ve 'var wid = new Widget();' yazabilirsiniz. –

+0

ohh. İlginç! Bunu bilmiyordum. Sabahları yaptığım gözlemime dayanarak yorumlarımı yayınladım. Bunu bilmek iyi. İsim-alanı içindeki ad alanlarını 'using' anahtar sözcüğünü kullanarak aktarabilirim. Teşekkürler. – RBT

23

Versiyonlama ile kendinizi gerçekten derin bir delikten çıkarmanıza yardım etmek için var. Programınızın ilk sürümünün bu sınıfı

kullandığını ve bununla birlikte çok sayıda banka hesabı kaydının serileştirdiğini söyleyin. Ve bir muhasebeci bir kuruş milyarda kapalı olma bilanço şikayet başlar, bu yüzden sınıf değiştirin: Bir sonraki müşteri mutlu bilançolarını vardır çözüldü

public decimal Balance { get; set; } 

Sorun. Varolan bir müşteriyi eski biçimde çok sayıda seri hale getirilmiş kayıtlarla yükseltmeniz istenene kadar. Büyük sorun, sınıf değiştiği için artık kayıtları kaldıramazsın.

extern diğer adınız sorunu çözer, ad alanı adları ve sınıf adları aynı olsa bile, hem eski sürümü hem de kodunuzun sınıfının yeni sürümüne başvurabilirsiniz.

+1

Dıştan takma ad kullanmak için çok kapsamlı kullanım durumu. – RBT

İlgili konular