Gönderen Konu: c# using direktifi?  (Okunma sayısı 277 defa)

Çevrimdışı mir_as82

  • Emektar
  • *****
  • İleti: 938
c# using direktifi?
« : 05 Kasım 2017, 11:04:18 »
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?

Çevrimdışı sigmoid

  • Emektar
  • *****
  • İleti: 806
Ynt: c# using direktifi?
« Yanıtla #1 : 05 Kasım 2017, 12:16:01 »
Dediğiniz gibi uzun uzun namespace adını yazmaktan bizi kurtarıyor.


Çevrimdışı mir_as82

  • Emektar
  • *****
  • İleti: 938
Ynt: c# using direktifi?
« Yanıtla #2 : 05 Kasım 2017, 21: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ı ?

Çevrimdışı foseydon

  • Müdavim
  • ***
  • İleti: 84
Ynt: c# using direktifi?
« Yanıtla #3 : 05 Kasım 2017, 23:41:59 »
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.