c using statement c virtual method tutorial with examples
Ten szczegółowy samouczek wyjaśnia wszystko o języku C # przy użyciu instrukcji i metody wirtualnej. Dowiesz się również, jaka jest różnica między metodami abstrakcyjnymi i wirtualnymi:
Blok Using pomaga głównie w zarządzaniu zasobami, pozwala systemowi zarządzać swoimi zasobami poprzez określenie zakresu obiektu i jego wymagań dotyczących zasobów.
.Net Framework oferuje różne sposoby zarządzania zasobami obiektów za pomocą modułu odśmiecania pamięci. Oznacza to, że nie musisz jawnie przydzielać i usuwać obiektów pamięci. Operacja czyszczenia dowolnego niezarządzanego obiektu zostanie wykonana przy użyciu destruktora.
Aby pomóc programistom to osiągnąć, instrukcja C # using zawiera warunek zniszczenia obiektu.
=> Sprawdź bezpłatny przewodnik szkoleniowy języka C # tutaj .
najlepszy darmowy ripper DVD dla systemu Windows 10
Aby osiągnąć automatyczne zniszczenie obiektu, C # oferuje metodę usuwania, którą można wywołać, gdy obiekt nie jest już wymagany. Instrukcja using w C # definiuje warunkową granicę istnienia obiektu. Gdy sekwencja wykonania opuści granicę używania, platforma .Net będzie wiedziała, że nadszedł czas, aby zniszczyć ten obiekt.
Czego się nauczysz:
- C # przy użyciu instrukcji
- Metoda wirtualna C #
- Co to jest metoda wirtualna?
- Metody wirtualne: kilka punktów do zapamiętania
- Jakie jest zastosowanie wirtualnego słowa kluczowego w języku C #?
- Różnica między metodą abstrakcyjną a metodą wirtualną
- Różnica między wirtualnym a zastąpieniem w C #
- Czy zastąpienie metody wirtualnej w C # jest obowiązkowe?
- Wniosek
C # przy użyciu instrukcji
Zaimplementuj interfejs IDisposable do użycia
Instrukcja C # Using umożliwia programistom zaimplementowanie kilku zasobów w jednej instrukcji. Wszystkie obiekty zdefiniowane w using bloku kodu powinny implementować interfejs IDisposable, co umożliwia platformie wywoływanie metod dispose dla określonych obiektów w instrukcji po jej zakończeniu.
Przykład
Używanie instrukcji można łączyć z typem, który może implementować IDisposable, takim jak StreamWriter, StreamReader itp.
Rzućmy okiem na prosty program:
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'); } }
Wynik
Wynik powyższego programu:
Wewnątrz za pomocą oświadczenia
Metoda usuwania
Poza blokiem instrukcji using
Wyjaśnienie
W powyższym przykładzie, gdy program jest wykonywany, najpierw w stercie pamięci alokowana jest instancja „SysObj”. Następnie blok using rozpoczyna wykonywanie i wyświetla dane wyjściowe, które zdefiniowaliśmy w konsoli. Następnie, gdy blok instrukcji Using dobiega końca, wykonanie jest natychmiast przenoszone do metody dispose.
Następnie kod opuszcza blok instrukcji i wypisuje instrukcję zewnętrzną do konsoli.
Metoda wirtualna C #
Co to jest metoda wirtualna?
Metoda wirtualna to metoda klasy, która oferuje programiście funkcję przesłaniania metody w klasie pochodnej, która ma tę samą sygnaturę. Metody wirtualne są używane głównie do wykonywania polimorfizmu w środowisku OOP.
Metoda wirtualna może mieć implementację zarówno w klasach pochodnych, jak i podstawowych. Jest używany głównie wtedy, gdy użytkownik potrzebuje większej funkcjonalności w klasie pochodnej.
Metoda wirtualna jest najpierw tworzona w klasie bazowej, a następnie jest zastępowana w klasie pochodnej. Metoda wirtualna może zostać utworzona w klasie bazowej przy użyciu słowa kluczowego „virtual” i ta sama metoda może zostać zastąpiona w klasie pochodnej za pomocą słowa kluczowego „override”.
Metody wirtualne: kilka punktów do zapamiętania
- Metoda wirtualna w klasie pochodnej ma słowo kluczowe virtual, a metoda w klasie pochodnej powinna mieć słowo kluczowe override.
- Jeśli metoda jest zadeklarowana jako metoda wirtualna w klasie bazowej, wówczas klasa pochodna nie zawsze wymaga, aby nadpisała tę metodę, tj. Opcjonalne jest przesłonięcie metody wirtualnej w klasie pochodnej.
- Jeśli metoda ma tę samą definicję zarówno w klasie bazowej, jak i pochodnej, nie jest wymagane przesłonięcie metody. Zastąpienie jest wymagane tylko wtedy, gdy oba mają inną definicję.
- Metoda nadpisywania pozwala nam na użycie więcej niż jednej formy dla tej samej metody, stąd też pokazuje polimorfizm.
- Wszystkie metody są domyślnie niewirtualne.
- Wirtualny modyfikator nie może być używany razem z modyfikatorami Private, Static lub Abstract.
Jakie jest zastosowanie wirtualnego słowa kluczowego w języku C #?
Słowo kluczowe virtual w C # służy do zastępowania elementu członkowskiego klasy bazowej w jego klasie pochodnej na podstawie wymagania.
Słowo kluczowe virtual służy do określania metody wirtualnej w klasie bazowej, a metoda o tej samej sygnaturze, która musi zostać zastąpiona w klasie pochodnej, jest poprzedzona słowem kluczowym override.
Różnica między metodą abstrakcyjną a metodą wirtualną
Metody wirtualne zawierają implementację i pozwalają klasie pochodnej na przesłonięcie jej, podczas gdy metoda abstrakcyjna nie oferuje żadnej implementacji i zmusza programistów do pisania metod zastępujących w klasie pochodnej.
Stąd, w prostych słowach, metody abstrakcyjne nie mają w sobie żadnego kodu, podczas gdy metoda wirtualna ma własną implementację.
jak zainstalować subversion w eclipse
Różnica między wirtualnym a zastąpieniem w C #
Po słowie kluczowym virtual zazwyczaj następuje sygnatura metody, właściwości itp. I umożliwia ona przesłonięcie jej w klasie pochodnej. Słowo kluczowe override jest używane w klasie pochodnej z tą samą sygnaturą metody / właściwości, co w klasie bazowej, aby uzyskać przesłonięcie w klasie pochodnej.
Czy zastąpienie metody wirtualnej w C # jest obowiązkowe?
Kompilator nigdy nie będzie zmuszał programistów do przesłonięcia metody wirtualnej. Klasa pochodna nie zawsze wymaga przesłonięcia metody wirtualnej.
Przykład
Spójrzmy na przykład, aby lepiej zrozumieć metody wirtualne.
W tym przykładzie będziemy używać dwóch różnych metod w klasie bazowej, pierwsza jest metodą niewirtualną, a druga jest metodą wirtualną ze słowem kluczowym virtual. Obie te metody zostaną zastąpione w klasie pochodnej.
Spójrzmy:
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'); } }
Wynik
Wynik powyższego programu to:
To jest metoda dodawania w klasie pochodnej
To jest metoda dodawania
Jest to przesłonięcie metody odejmowania w klasie pochodnej
Jest to przesłonięcie metody odejmowania w klasie pochodnej
Wyjaśnienie
W powyższym przykładzie mamy dwie klasy, tj. Number i Calculate. Klasa bazowa Number ma dwie metody, tj. Dodawanie i odejmowanie, gdzie dodawanie jest metodą niewirtualną, a odejmowanie jest metodą wirtualną. Stąd, gdy wykonujemy ten program, metoda „dodawania” klasy bazowej jest zastępowana w klasie pochodnej Calculate.
W innej klasie „Program” tworzymy punkt wejścia, aby utworzyć instancję klasy pochodnej Calculate, a następnie przypisujemy tę samą instancję do obiektu instancji klasy bazowej.
Kiedy wywołujemy metody wirtualne i niewirtualne przy użyciu instancji klasy, widzimy, że metoda wirtualna została zastąpiona przez użycie obu instancji, podczas gdy metoda niewirtualna została zastąpiona tylko podczas wywoływania klasy pochodnej.
Wniosek
Instrukcja using w języku C # jest używana głównie do zarządzania zasobami. Instrukcja using określa warunkową granicę istnienia obiektu.
Gdy wykonanie wyjdzie z bloku instrukcji, mówi frameworkowi, aby zniszczył każdy obiekt, który został utworzony w bloku instrukcji. Kod zdefiniowany w instrukcji powinien również implementować interfejs IDisposable, aby umożliwić platformie .Net wywołanie metody dispose dla zdefiniowanych obiektów.
Metoda wirtualna umożliwia użytkownikowi przesłonięcie metody w klasie pochodnej, która ma taki sam podpis jak metoda w klasie bazowej. Metoda wirtualna może być wykorzystana do uzyskania polimorfizmu w zorientowanych obiektowo językach programowania.
Metoda wirtualna jest używana głównie wtedy, gdy w klasie pochodnej wymagana jest dodatkowa funkcjonalność. Metody wirtualne nie mogą być prywatne, statyczne ani abstrakcyjne. Jest definiowany przy użyciu słowa kluczowego virtual w klasie bazowej i słowa kluczowego override w klasie pochodnej.
=> Obejrzyj szczegółowe samouczki szkoleniowe języka C # tutaj
rekomendowane lektury
- Python DateTime Tutorial z przykładami
- Selenium Find Element By Text Samouczek z przykładami
- Metoda MongoDB Sort () z przykładami
- Dokument zapytania MongoDB przy użyciu metody Find () (przykłady)
- Wykorzystanie kursora w MongoDB z przykładami
- Klasy i obiekty języka C #: szczegółowy samouczek z przykładami
- Samouczek dotyczący skryptów powłoki Unix z przykładami
- C # samouczek obsługi wyjątków z przykładami kodu