Hangi nedenlerle C # "kullanarak" bölümünü temiz tutmak gerekir?


11

Kodumu yeniden düzenlerken, IDE'yi C # sınıfımın kullanma bölümüne gittim ve kullanılmayan ad alanlarını ve yinelenen ad alanlarını temizledim ve hepsini sıraladım.

Çiftim (çift programlama) nedenini sordu. Bunu neden yaptığım hakkında hiçbir fikrim yoktu. Tüm kodumu temiz ve düzenli tutmak için alışkanlığım dışında yaptım. Demek istediğim, ona daha temiz bir koda sahip olmanın genel olarak iyi bir fikir olduğunu söyledim, ama elbette bu sebep iyi bir gerekçe değildi, çünkü zamanımı herhangi bir C # kod sayfasının kullanma bölümünde harcamak için bile uğraşmayacağım .

Çoğu zaman bir sınıfı veya bir numaralandırmayı (veya genel olarak bir türü) bir ad alanından başka bir ad alanına taşıdığınızdan ve bu, kodunuza yeni kullanım ifadeleri ekler (kod penceresine gidip using ifadesini kendiniz yazarak veya Alt+ Ctrl+ F10kombinasyonunu kullanarak düzenleyici aracılığıyla ) ve bu yeni kullanım ifadeleri , kullanım bölümünün sonuna alfabetik olarak sıralanmayan bir bölüm ekleyeceğinden ve derleyici bu sorunlardan herhangi biriyle ilgili hiçbir zaman şikayetçi olmadığından, bunu neden önemsemeliyiz? bölüm temiz ve düzenli? Hangi nedenlere sahip olabiliriz?


5
Bu zaten Stack Overflow - stackoverflow.com/questions/4163320/unused-using-statements (ve yan çubuktaki iki bağlantılı soru) hakkında sorulmuş ve cevaplanmıştır - temel olarak kullanılmayan kullanımlar hakkında endişelenmenize gerek yoktur
ChrisF

Büyük referans @ChrisF, sanırım cevabımı aldım. Belki de bununla ilgili soruya katılmalı veya benzer bir şey yapmalısınız. :)
Saeed Neamati

Bunu da kontrol edin: stackoverflow.com/a/136646/333306

Yanıtlar:


22

Kaç usingdirektifiniz olursa olsun, performans farkı yoktur .

Ama bence onları iki nedenden dolayı temiz tutmak mantıklı:

  1. Eğer usings'ye bakarsanız , dosyanın hangi bağımlılıklara sahip olduğunu görebilirsiniz. Bu, dosyadaki türlerin ne yaptığını anlamanıza yardımcı olabilir. Bunu yaparsanız, usings'nin belirli bir sırada olması onu daha hızlı görmenize yardımcı olur.
  2. Çok fazla sayıda varsa usings, bu olabilir Eğer endişeleri fakir ayrımı olduğunu ve dosyada tipi (lar) çok fazla yapmak olduğunu göstermektedir.

Her ikisi de çok önemli değil, bu yüzden çok fazla endişelenmemelisin. Ama şahsen, usings'yi temiz tutmaya değer kıldığını düşünüyorum .


8

Kullanım ifadeleri arasında temizlemek için ana nedenlerim:

  • İfadeleri ne kadar çok kullanırsanız, belirsizliği önlemek için kodda ad alanının bir kısmını eklemeniz gerektiği anlamına gelen çakışmaları adlandırma olasılığı artar.
  • IntelliSense, kullanım ifadelerinizdeki tüm derlemelere göre filtrelenir. Bu nedenle, gereksiz ifadelerden temizlerseniz, IntelliSense'in doğruluğuna yardımcı olarak kendinize yardımcı olacaksınız.

Üstelik, okunabilirliği arttırdığı ve sınıftaki türlerin ne yaptığına dair bir fikir edinmeyi kolaylaştırdığı için diğer cevaplara katılıyorum.


Bunun neden daha yüksek oy kullanılamadığını anlamıyorum. Ad alanı çakışmaları meşru bir sorundur.
RubberDuck

7

“Eklemek için hiçbir şey kalmadığında değil, götürecek hiçbir şey kalmadığında mükemmellik elde edilir” - Antoine de Saint-Exupery

Gerekli olmayan ve anlayış eklemeyen bir şeyi kaldırabildiğinizde, bunu yapın (okunabilirlik ekstra koda değer).


Büyük aforizma. Bu fikri beğendim. +1;)
Saeed Neamati

4

Sadece sinyalden gürültü çıkarıyor. Daha az gürültü sinyali almanın daha kolay olduğu, yani kodun amacının anlaşıldığı anlamına gelir.

Gürültü jeneratör olarak oldukça küçük bir olsa.


2
  • Kodunuzun okunabilirliğini artırır.
  • Normalde çok az sayıda ifade kullanıyorsanız, bu yönergeleri takip etmek çok az mantıklıdır

  • İfadeleri kullanarak bölümlere ayırmak daha mantıklıdır.

Örneğin:

    using System.Web;

    using MyPlatform.FooX;        
    using MyPlatform.FooY;

    using MyFramework.Helpers;        
    using MyFramework.Extentions;

Sınıfa bakarsam, verilen sınıfın System.Web derlemesini, platformumuzu ve çerçevemizi kullandığını anında görebiliyorum. Bu bana bağımlılıkları ve karmaşıklığı hakkında kabaca bir fikir veriyor.

Daha sonra bu bir adım daha ileri gidebilir ve ifadeleri sipariş edebilirsiniz, ancak ifadeleri daha az okunabilir hale getirdiğini düşünüyorum, bu yüzden bunu tavsiye etmem.

using MyFramework.Extentions;
using MyFramework.Helpers;

using System.Web;

using MyPlatform.FooX;        
using MyPlatform.FooY;
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.