Birden çok sınıf içeren C # dosyası için hangi adlandırma kuralı?


20

C # projelerinde, küçük ve sıkı ilişkili sınıfları sık sık aynı .csdosyada gruplandırırız . Bu uygulama, gerçek koda yakın olmayan sayısız dosyayla uğraşmanın sürtünmesini azaltır. Ancak, birden fazla sınıf içeren dosyayı adlandırmak için yerleşik bir uygulama var mı?


13
Açıkçası ben çok küçük sınıflar için bile bir dosya bir sınıf tercih
Felice Pollano

Bu sıkı ilişkili sınıfların altında olduğu gruba göre adlandırmayı seçebilirsiniz .
V4Vendetta

Belki bu sınıflar çok küçüktür? Şahsen ben sadece bir dosyada birden çok numaralandırma grup (bazen sınıf, bazen tüm numaralandırma, bağlama bağlı olarak).
Konrad Morawski

@Felice: MSpec'e bakın :)
Bryan Boettcher

Yanıtlar:


18

Benim tavsiyem: Çok fazla dosya olduğu anlamına gelse bile, birden fazla sınıf ve isim dosyası == sınıf içeren dosyalardan kaçının. Bunları klasörlerde düzenlemeye çalışın. Çok özel durumlarda yuvalanmış sınıflarınız olabilir. Bu durumda, ana sınıfı ve iç içe bir sınıfı bir kısmi sınıfa sahip farklı dosyalara ayırmak mantıklıdır. Bu durumda aşağıdaki adlandırma kuralını kullanıyorum.

MyEnumerable.cs
MyEnumerable.MyEnumerator.cs

Muhtemelen sizin durumunuzda çok parçalı dosya adları da kullanabilirsiniz.


4
Bir fikir daha. Birden çok .cs dosyasını Visual Studio Project içinde gruplandırabilirsiniz, böylece hepsi ağaçtaki aynı düğüm altında görünebilir (.Designer.cs dosyaları gibi). Bu, sınıfların birbirine sıkıca ait olduğunu gösterecektir.


4

Bu tür dosyaların nasıl adlandırılacağı hakkında bir soru sorarak, sizin için sorunlu bir kod kokusu belirlediğinizi ve bunun kolayca ortadan kalkmayacak bir sorun olduğunu düşünün.

Akıl yürütme ne olursa olsun, bir dosyada birden fazla sınıf olduğunda mantıklı isimler seçmenin zor olduğunu göreceksiniz, çünkü dosyalar bir şekilde ilişkili olsa bile, her zaman bir grup sınıfa atadığınız grup adına tam olarak uymuyor.

Bu nedenle kısa yanıt, bu tür dosyaları adlandırmak için tanınmış veya belirlenmiş bir standart olmamasıdır. Benim önerim ekibinizle oturup kodunuzun organizasyonuna bakmak ve işleri biraz düzeltmek için biraz yeniden düzenleme çabası uygulamak olacaktır.

Bununla birlikte, işlerin başlamasını biraz daha kolaylaştırmak için ek sınıfların iç içe mi yoksa bağımsız mı olduğunu sorarım. Bağımsız ise, bu sınıflar kendi dosyalarına daha kolay ayrılabilir, her bir dosya içerdiği tek sınıf için adlandırılır. Yuvalanmışsa, bu tür sınıfların nasıl organize edilmesi gerektiğine dair başka kararlar alınması gerekebilir, ancak yuvalanmış sınıfların hemen kaldırılması gerekmeyebilir ve bu nedenle dosyalar en dış sınıf için adlandırılır. Yuvalama söz konusu olduğunda, bazı koşullar altında yuvalama için çok sayıda argüman vardır ve bazı makul durumlar vardır ve tavsiyem mantıklı isim boşluğunun ve daha organize bir kaynak kodu yapısı oluşturmanın daha iyi bir yol olup olmadığını sormak olacaktır. sorun.

Gerçekçi olmakla birlikte, projenizin ömrünün sonunda, dosyalarınızın hepsinin sadece tek bir sınıf ve onunla gitmek için güzel bir dizin / ad alanı yapısı içermesini dilediğinizi göreceksiniz.

Alkış,


3

Eskiden tek bir dosyada birden fazla sınıf bulunduğum için, ama aslında bir programcı olarak çalıştığımdan beri (kendi başıma değil), tek bir dosyada birçok sınıfla bir bakım kabusu olabileceğini buldum. Kuşkusuz, Visual Studio F12 (tanıma gidin) kullanarak çok yardımcı olabilir.

Ne yapmaya başladığım aşağıdaki gibi bir adlandırma kuralı kullanmaktır: namespace.classname.cs Bu şekilde her dosyada tam olarak ne olduğunu biliyorum ve aynı zamanda dosyanın genel bağlamı bir tür sağlar. Sınıf varsayılan ad alanında olacaksa, devam edip sadece classname.cs (Java'ya benzer) kullanın.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.