C # arayüzünde “Using” anahtar kelimesinin kullanımı


16

Bazı kod yazmak için C # kullandığımda ve Visual Studio 2010 kullanarak bir arabirim tanımlarken, her zaman bir dizi "using" ifadeleri içerir (örnekte gösterildiği gibi)

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace TestEngine.TestNameSpace
{
    interface ITest1
    {
        bool testMethod(int xyz);
    }
} 

Bunların ne için olduğunu ve gerçekten gerekli olup olmadığını merak ediyorum. Bunları dışarıda bırakabilir miyim? Yalnızca arayüz açıklamamdaki bu parçaları kullandığımda gerekli mi?


düzenleme için teşekkürler. Sadece kendim hallettim. kod bloğunda onları seçmiş olsam bile bir şekilde kullanma ifadeleri dışarıda bırakıldı :)
Onno

2
Ayrıca stackoverflow.com/a/151560/240613 adresini okuyun : kodunuzda, kullanıcılar yanlış yerde.
Arseni Mourzenko

1
Bağlantı için Thnx, harika bir ektir. @Akshat Jiwan Sharma'nın cevabından sonra, bunun gerçekten de olduğu açıktı, ancak aynı zamanda soru, VS2010'u yüklediğinizde MS tarafından sağlanan varsayılan şablon / ayarlarla ilgilidir.
Onno

1
@MainMa - burası Visual Studio'nun usingsvarsayılan şablonlara koyduğu yerdir , bu nedenle Microsoft bunları yakında güncellemezse bu soru geçerlidir.
ChrisF

1
@Midhat: Doğru, ama sanırım biri sorunun kendisini okuduğunda ne sorulduğu belli. Daha iyi bir başlık düşünebilirseniz başlığı düzenleyebilirsiniz.
Onno

Yanıtlar:


49

Visual Studio hangi kodu yazmak istediğinizi bilmiyor, bu nedenle "yeni sınıf" şablonunda varsayılan olarak sizin için en yaygın ad alanlarını içerir. Bu, yazdığınız her yeni kod satırı için tüm referansları çözmeniz gerekmediği için yapılır.

Temel kodunuzu yazdıktan sonra, sağ tıklayın ve Kullanımları Düzenle> Kaldır ve Sırala'yı seçin , kullanılmayanları siler.


2
Ayrıca, yanlışlıkla "kullanma" satırını kaldırırsanız, şimdi bulunamayan sınıf adına giderek bunları tekrar ekleyebilir ve sağ tıklayabilirsiniz -> Çöz -> Kullanılıyor ...
Bay Lister

10
@MrLister: Bunu henüz bilmiyorsanız: "ctrl +" tuşlarına basın. (kontrol süresi) imleciniz çözülmemiş bir tür veya sınıftayken ve fareye dokunmanıza gerek kalmadan aynı etkiyi elde ettiğinizde.
Steven Evers

3
Ayrıca yanıta bir ek olarak: sadece kullanılan "kullanımlar" yükleneceğinden, kullanılmayan "kullanımlar" kodunuzun çalışma süresini etkilemez. Ancak IDE'yi ve derleme hızlarını etkileyebilirler: stackoverflow.com/questions/136278/…
Holger

Bu kabul edilen cevap olduğu için, StyleCop'un referansların yanlış yerde olmasından şikayet edeceğini ve ayrıca yeni bir sınıf ve yeni bir arayüz için bir şablonu düzenleyebileceğinden bahsetmek istedim
İş

5

Evet, kullanılmayan yönergeleri kaldırabilirsiniz. Bu yönergeler, en sık kullanılanlar olduğu için visual studio tarafından otomatik olarak eklenir ve örneğin, arabirimde linq kullanmayacaksanız, yönergeyi kaldırabilirsiniz.

 System.Linq;

Aynı şey diğer direktifler için de geçerlidir.Ayrıca, kullanım direktiflerini isim alanlarında taşımak da iyi bir uygulamadır.


Sorduğunuz soruyu bana uzun süre şaşırtmaktan mutluluk duyuyorum. :)
Akshat Jiwan Sharma

Bir şablon dosyasını düzenleyebilir ve hangi kullanma deyiminin dahil edileceğini ve nerede - varsayılan olarak ad alanının içine girmeleri gerektiğini ayarlayabilir veya başka bir şekilde StyleCop şikayet edecek ve daha da kötüsü - kötü şeyler olabilir.
Meslek

3

Bu varsayılan usingifadeler, arayüz oluştururken varsayılan şablonunuzun bir parçasıdır. Kaldırılması için şablonu istediğiniz zaman düzenleyebilirsiniz. Daha fazla ayrıntı için bu soruya bakın.


Ama gerçekten gerekli mi? Şablonda olmaları için iyi bir neden var mı?
Onno

Onlara ihtiyacınız yoksa kaldırın. Bunlar yalnızca varsayılan değerlerdir.
Bernard

Yalnızca arabirim yöntemlerinizden biri, bunlardan birinde bulunan bir dönüş türüyse gereklidir. En azından sisteme, diğerlerine ise yalnızca geri dönmek istediğiniz tipler için ihtiyaç duyulur.
Graham

Aslında, birçok sınıfın sisteme ihtiyacı yoktur. Ama sonuçta çoğu geliştirici, özellikle de .NET için korkunç bir şekilde kullanılmayan ve ana sistem sınıflarını nereden alacağını bilmeyenlerde hayatı kolaylaştırır.
Wyatt Barnett

0

Kısacası , bunlara ad alanları denir . Ad alanları, kodunuzdaki bazı kütüphane sınıflarına başvurmak için de kullanılır. .NET'te ad alanlarını kullanma hakkında önerilen yönergeler de vardır.

Çoğu durumda, kullanılmazsa bunları basitçe kaldırabilirsiniz. Aşağıdaki iki ad alanı kaldırılacak potansiyel adaylardır.

using System.Collections.Generic;
using System.Linq;

Bazı çerçeve / kütüphane sınıfları ad alanlarını bildirmeden kullanıldıktan sonra, Visual Studio kodu şikayet edecek ve DEĞİL derleyecektir. Böylece, ad alanı kodunuzu yapılandırmanın yanı sıra proje sınıfları, arayüzler, yapılar vb. Arasındaki referansları kolaylaştırır.


-1

C # kullanarak birçok yolla kullanılır .. kelime anahtar kelimesini kullanarak ... Bu, tüm ana işlevlerin saklandığı bir Sistem adı DLL'si olduğu ve kodumuzu kısaltmak için kullandığımız anlamına gelir ...

system.WriteLine("Andy");

ama yukarıdaki sistemi kullandığımızda

WriteLine("Andy");

SQLserver'da bağlantıyı kullandığımızda daha çok komut komutunu kullanarak veritabanından veri kullandıktan sonra kendini kapatacağız demektir. zamanını kurtarmak isteyen bir kodlayıcı için çok faydalıdır


1
Lütfen yanıtlarınıza gereksiz (ve potansiyel olarak spam içerikli) bağlantılar eklemeye çalışmayın.
ChrisF
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.