c using statement c virtual method tutorial with examples
Bu Derinlemesine Eğitim, C # Kullanımıyla İlgili İfadeyi ve Sanal Yöntemi Açıklar. Ayrıca Soyut ve Sanal Yöntemler Arasındaki Farkı Öğreneceksiniz:
Kullanma bloğu esas olarak kaynakların yönetilmesine yardımcı olur, nesnenin kapsamını ve kaynak gereksinimini belirleyerek sistemin kaynaklarını yönetmesine izin verir.
.Net Framework, bir çöp toplayıcı kullanan nesneler için kaynak yönetimi için farklı yollar sunar. Bu, bellek nesnelerini açıkça ayırmanıza ve kaldırmanıza gerek olmadığı anlamına gelir. Yönetilmeyen herhangi bir nesne için temizleme işlemi, yıkıcı kullanılarak ele alınacaktır.
Programcıların bunu başarmasına yardımcı olmak için, C # using deyimi, nesnenin yok edilmesi için bir koşul sağlar.
=> Ücretsiz C # Eğitim Kılavuzuna Buradan Göz Atın .
Nesnenin otomatik imhasını sağlamak için C #, nesne artık gerekli olmadığında çağrılabilen bir elden çıkarma yöntemi sunar. C #'daki using ifadesi, nesnenin varlığı için koşullu bir sınır tanımlar. Yürütme dizisi kullanım sınırını terk ettiğinde, .Net çerçevesi bu nesneyi yok etme zamanının geldiğini bilecektir.
torrent dosyası nasıl açılır
Ne öğreneceksin:
C # İfadeyi Kullanma
Kullanım için IDisposable Arayüzü Uygulayın
C # Using ifadesi, programcıların tek bir ifadede birkaç kaynağı uygulamasına izin verir. Kullanım kodu bloğunun içinde tanımlanan tüm nesneler, IDisposable arabirimini uygulamalıdır ve bu, çerçevenin, çıkıldığında ifade içindeki belirtilen nesneler için dispose yöntemlerini çağırmasına izin verir.
Misal
İfadelerin kullanılması, StreamWriter, StreamReader, vb. Gibi IDisposable uygulayabilen bir türle birleştirilebilir.
Şimdi basit bir programa bakalım:
public class Program { public static void Main(string() args) { using (SysObj so = new SysObj()) { Console.WriteLine('Inside using statement'); } Console.WriteLine('Outside of the using statement block'); } } class SysObj : IDisposable { public void Dispose() { Console.WriteLine('Dispose method'); } }
Çıktı
Yukarıdaki programın çıktısı:
İfade kullanarak içeride
Bertaraf yöntemi
Using ifade bloğunun dışında
Açıklama
Yukarıdaki örnekte, program çalıştırıldığında, önce bellek yığınında “SysObj” örneği tahsis edilir. Daha sonra using bloğu yürütmeye başlar ve konsolda tanımladığımız çıktıyı yazdırır. Daha sonra, Using deyim bloğu aşıldıkça, yürütme hemen dispose yöntemine aktarılır.
Daha sonra kod, ifade bloğundan çıkar ve dış ifadeyi konsola yazdırır.
C # Sanal Yöntem
Sanal Yöntem Nedir?
Sanal bir yöntem, programcıya aynı imzaya sahip türetilmiş sınıftaki bir yöntemi geçersiz kılmak için işlevsellik sunan bir sınıf yöntemidir. Sanal yöntemler esas olarak OOP ortamında polimorfizm gerçekleştirmek için kullanılır.
Bir sanal yöntemin hem türetilmiş hem de temel sınıflarda bir uygulaması olabilir. Esas olarak bir kullanıcının türetilmiş sınıfta daha fazla işlevselliğe sahip olması gerektiğinde kullanılır.
Bir sanal yöntem ilk olarak bir temel sınıfta oluşturulur ve ardından türetilmiş sınıfta geçersiz kılınır. Temel sınıfta 'virtual' anahtar sözcüğü kullanılarak sanal bir yöntem oluşturulabilir ve aynı yöntem 'override' anahtar sözcüğü kullanılarak türetilmiş sınıfta geçersiz kılınabilir.
Sanal Yöntemler: Hatırlanması Gereken Birkaç Nokta
- Türetilmiş sınıftaki sanal yöntem virtual anahtar sözcüğüne sahiptir ve türetilmiş sınıftaki yöntem bir override anahtar sözcüğüne sahip olmalıdır.
- Bir yöntem, temel sınıfta sanal bir yöntem olarak bildirilirse, türetilmiş sınıfın bu yöntemi geçersiz kılması her zaman gerekli değildir, yani türetilmiş sınıftaki sanal bir yöntemi geçersiz kılmak için isteğe bağlıdır.
- Bir yöntem hem temel hem de türetilmiş sınıfta aynı tanıma sahipse, yöntemi geçersiz kılmak gerekli değildir. Geçersiz kılma yalnızca her ikisinin de farklı bir tanımı varsa gereklidir.
- Geçersiz kılma yöntemi, aynı yöntem için birden fazla form kullanmamıza izin verir, dolayısıyla polimorfizmi de gösterir.
- Varsayılan olarak tüm yöntemler sanal değildir.
- Sanal bir değiştirici, Özel, Statik veya Soyut değiştiricilerle birlikte kullanılamaz.
C # 'da Sanal Anahtar Kelimenin Kullanımı Nedir?
C # 'daki virtual anahtar sözcüğü, gereksinime göre türetilmiş sınıfındaki temel sınıf üyesini geçersiz kılmak için kullanılır.
Temel sınıftaki sanal yöntemi belirtmek için bir sanal anahtar sözcük kullanılır ve türetilmiş sınıfta geçersiz kılınması gereken aynı imzaya sahip yöntemin önünde override anahtar sözcüğü bulunur.
Soyut Yöntem ile Sanal Yöntem Arasındaki Fark
Sanal yöntemler uygulama içerir ve türetilmiş sınıfın onu geçersiz kılmasına izin verirken, soyut yöntem herhangi bir uygulama sunmaz ve programcıları türetilmiş sınıfta geçersiz kılma yöntemlerini yazmaya zorlar.
Dolayısıyla, basit bir deyişle, soyut yöntemlerin içinde herhangi bir kod yoktur, oysa sanal yöntemin kendi uygulaması vardır.
C # 'da Sanal ve Geçersiz Kılma Arasındaki Fark
Sanal anahtar sözcüğün ardından genellikle yöntemin, özelliğin vb. İmzası gelir ve türetilmiş sınıfta geçersiz kılınmasına izin verir. Override anahtar sözcüğü, türetilmiş sınıfta geçersiz kılmayı başarmak için temel sınıftakiyle aynı yöntem / özellik imzasıyla türetilmiş sınıfta kullanılır.
C # 'da Sanal Yöntemi Geçersiz Kılmak Zorunlu mu?
Derleyici, programcıları sanal bir yöntemi geçersiz kılmaya asla zorlamaz. Türetilmiş sınıfın sanal yöntemi geçersiz kılması her zaman gerekli değildir.
Misal
Sanal yöntemleri daha net anlamak için bir örneğe bakalım.
Bu örnekte, temel sınıfta iki farklı yöntem kullanacağız, birincisi sanal olmayan bir yöntem, diğeri sanal anahtar kelime ile sanal bir yöntem. Bu iki yöntem de türetilmiş sınıfta geçersiz kılınır.
Bir bakalım:
Program
using System; public class Program { public static void Main(string() args) { calculate calc = new calculate (); numbers nmbr = calc; calc.addition(); nmbr.addition(); calc.subtraction(); nmbr.subtraction(); } } public class numbers { public void addition(){ Console.WriteLine('This is addition method'); } public virtual void subtraction(){ Console.WriteLine('This is subtraction method'); } } public class calculate : numbers { public void addition(){ Console.WriteLine('This is addition method in the derived class'); } public override void subtraction(){ Console.WriteLine('This is subtraction method override in derived class'); } }
Çıktı
Yukarıdaki programın çıktısı:
Bu türetilmiş sınıftaki toplama yöntemidir
Bu toplama yöntemidir
Bu, türetilmiş sınıfta çıkarma yönteminin geçersiz kılınmasıdır
Bu, türetilmiş sınıfta çıkarma yönteminin geçersiz kılınmasıdır
Açıklama
Yukarıdaki örnekte, iki sınıfımız var, yani Sayı ve Hesapla. Number temel sınıfının iki yöntemi vardır, yani toplama ve çıkarma burada sanal olmayan bir yöntemdir ve çıkarma sanal bir yöntemdir. Bu nedenle, bu programı çalıştırdığımızda, Calculate türetilmiş sınıfında temel sınıf sanal yöntemi olan “ekleme” geçersiz kılınır.
Başka bir 'Program' sınıfında, türetilmiş Calculate sınıfının bir örneğini oluşturmak için bir giriş noktası oluştururuz ve ardından aynı örneği temel sınıfın örnek nesnesine atarız.
Sınıf örneklerini kullanarak sanal ve sanal olmayan yöntemleri çağırdığımızda, sanal yöntemin her iki örnek kullanılarak geçersiz kılındığını, sanal olmayan yöntemin ise yalnızca türetilmiş sınıfı çağırırken geçersiz kılındığını görürüz.
Sonuç
C # 'daki using deyimi esas olarak kaynak yönetimi için kullanılır. Using deyimi, bir nesnenin varlığı için koşullu bir sınır tanımlar.
Yürütme, ifade bloğunun dışına çıktığında, çerçeveye ifade bloğunun içinde oluşturulan herhangi bir nesneyi yok etmesini söyler. İfade içinde tanımlanan kod, .Net çerçevesinin tanımlanan nesneler için dispose yöntemini çağırmasına izin vermek için IDisposable bir arabirim de uygulamalıdır.
Sanal bir yöntem, kullanıcının türetilmiş sınıftaki temel sınıftaki yöntemle aynı imzaya sahip bir yöntemi geçersiz kılmasına olanak tanır. Sanal yöntem, nesne yönelimli programlama dillerinde çok biçimlilik elde etmek için kullanılabilir.
Türetilmiş sınıfta ekstra işlevsellik gerektiğinde, esas olarak sanal bir yöntem kullanılır. Sanal yöntemler özel statik veya soyut olamaz. Temel sınıfta bir sanal anahtar kelime kullanılarak ve türetilmiş sınıftaki anahtar kelimeyi geçersiz kılarak tanımlanır.
=> Derinlemesine C # Eğitim Öğreticilerine Buradan Dikkat Edin
Önerilen Kaynaklar
- Örneklerle Python DateTime Eğitimi
- Selenyum Örneklerle Metin Eğitimi ile Eleman Bul
- MongoDB Sort () Yöntemi Örneklerle
- Find () Yöntemini Kullanan MongoDB Sorgu Belgesi (Örnekler)
- MongoDB'de İmleç Kullanımı Örneklerle
- C # Sınıfları ve Nesneleri: Örneklerle Derinlemesine Bir Eğitim
- Örneklerle Unix Shell Komut Dosyası Oluşturma Eğitimi
- Kod Örnekleriyle C # İstisna İşleme Eğitimi