c# using direktifi?

Başlatan mir_as82, 04 Kasım 2017, 20:04:18

mir_as82

Using direktifi tam olarak ne işe yarar?
Kod sayfasının başında kullanılan

using System.Text

Dediğimizde, sadece kod yazmamızı kolaylaştıran bir keyword mü?Yani System.Text.Endoding diye uzun uzun yazmamızı kolaylaştıran bir keyword müdür?sadece Encoding en = new Encoding();

Yoksa kodun derlenmesi aşamasında işlemi var mıdır?

sigmoid

Dediğiniz gibi uzun uzun namespace adını yazmaktan bizi kurtarıyor.


mir_as82

Peki projemde sadece System.Text.Endoding içindeki bir sınıfı kullanırsam, tüm System altındaki sınıflar mı çalışma anında .exe dosyama dahil edilir?yoksa sadece System.Text.Endoding altında kullandığım sınıf mı ?

foseydon

Alıntı yapılan: mir_as82 - 05 Kasım 2017, 06:17:53
Peki projemde sadece System.Text.Endoding içindeki bir sınıfı kullanırsam, tüm System altındaki sınıflar mı çalışma anında .exe dosyama dahil edilir?yoksa sadece System.Text.Endoding altında kullandığım sınıf mı ?

using direktifi, C dilindeki #include gibidir. Başka dosya ve kütüphaneleri eklemek için kullanılır. Bu sorunuza gelirsek, System.Text.Encoding'i ekler, System altında bulunan bütün kütüphaneleri eklemez. Siz,

using System;

ile System altında bulunan kütüphaneleri ekleseniz bile, program içerisinde Encoding.Text... şeklinde çağırırsınız. Bu durumda derleyici nihai çıktıyı oluştururken System.Text.Encoding'i ekleyerek oluşturacaktır. System'i kullanarak değil. Derleyeciler artık birçok şeyi sizin adınıza halleder aslında. Kullanılmayan değişkenler, dosyalar vs. nihai çıktıya eklenmez.

Son olarak, hangisini kullandığınızda farketmez. Sonuç olarak bunlar .NET kütüphanesine aittir ve .NET kurulu her bilgisayarda bulunur. Yani

using System; de kullansanız
using System.Text.Encoding; de kullansanız

dosya boyutunuza etkisi olmaz. Siz sadece işaret etmiş oluyorsunuz, dosyalar zaten bilgisayarda bulunuyor. O zaman neden

using System;

kullanmıyorum şeklinde bir soru aklınıza gelecektir. Text.Encoding sınıfından her fonksiyon çağırdığınızda Text.Encoding yazmaktan kurtulmak için.