2009-06-26 9 views

cevap

7

- Ben standart bir çerçeve üzerinde durulacak. ad alanı adları için yönergeler. Uzantı yöntemlerini, genellikle kullanılacak/anlamlı bir şekilde kullanacakları bir ad alanına koyun ve bunun için yalnızca bir ad alanı bulundurmaktan kaçının.

Sponsor sınıfı için - bu durumda, oldukça önemsiz. Anlamlı olan bir sınıf adı seçmeyi denerdim, ancak sabit bir kılavuz gibi görünmüyor.

Burada önemli olan, sponsor sınıfının, uzantı yöntemlerinizin kullanıcısı tarafından asla doğrudan kullanılmadığı/görülmediği. Ad alanı eklendiği sürece, uzantı yöntemi doğru olarak bulunur. Kişisel olarak benim uzantı yöntemlerim için jrummell'a çok benzer bir şey kullanıyorum, ancak Microsoft bunu Framework'de izlemiyor (bunun iyi bir örneği Enumerable sınıfıdır).

+1

Hem Reed hem de jrummell cevapları iyi.İyi bir derinliğe girdiği için bunu "The" yanıtı olarak işaretleyeceğim. Bir not olsa da - klasik sınıf yönteminin kullanıldığı uzantı yöntemlerini desteklemeyen. Kullanılmalı. –

13

Ben herhangi bir resmi öneriler görmedim ama [NameSpace] gibi Uzantımın sınıfları organize ettik [SinifAdi] Extensions: Namespace için

ProjectName.Web.Util.ControlExtensions 
ProjectName.Data.Util.CollectionExtensions 
+3

Aynı şeyi yapıyorum ve son derece özel bir statik uzatma yöntemi sınıflarını, diğer geliştiriciler için akıllı hale getirilmeyecekleri şekilde kullanılacak ad alanlarına ilgili ad alanlarına yerleştirme eğiliminde olduğumu da eklemeliyim. Yani, başka bir deyişle, uzantı yöntem sınıflarım, zorunlu olarak, genişletecekleri sınıfla aynı ad alanında bulunmazlar. – jpierson

+1

Benzer bir şey yapıyorum ama bir sınıf yerine bir * arabirime * uzantı yöntemleri eklediğimde, "IMyInterfaceExtensions" gibi çirkin sınıf adlarıyla sona erer ve uzantı sınıfının kendisinin bir arabirim olduğu anlaşılıyor :( –