c using statement c virtual method tutorial with examples
이 심층 자습서에서는 문 및 가상 메서드를 사용하는 C #에 대한 모든 것을 설명합니다. 또한 추상 방법과 가상 방법의 차이점을 배우게됩니다.
Using 블록은 주로 리소스 관리에 도움이되며 시스템이 개체의 범위와 리소스 요구 사항을 지정하여 리소스를 관리 할 수 있도록합니다.
.Net Framework는 가비지 수집기를 사용하는 개체의 리소스 관리를위한 다양한 방법을 제공합니다. 이는 메모리 개체를 명시 적으로 할당하고 제거 할 필요가 없음을 의미합니다. 관리되지 않는 개체에 대한 정리 작업은 소멸자를 사용하여 처리됩니다.
프로그래머가이를 달성하는 데 도움이되도록 C # using 문은 개체의 소멸 조건을 제공합니다.
=> 여기에서 무료 C # 교육 가이드를 확인하세요. .
개체의 자동 소멸을 달성하기 위해 C #은 개체가 더 이상 필요하지 않을 때 호출 할 수있는 dispose 메서드를 제공합니다. C #의 using 문은 개체의 존재에 대한 조건부 경계를 정의합니다. 실행 시퀀스가 사용 경계를 벗어나면 .Net 프레임 워크는 해당 객체를 파괴 할 시간을 알게됩니다.
학습 내용 :
C # Using 문
사용을위한 IDisposable 인터페이스 구현
C # Using 문을 사용하면 프로그래머가 하나의 문에서 여러 리소스를 구현할 수 있습니다. using 코드 블록 내부에 정의 된 모든 개체는 IDisposable 인터페이스를 구현해야하며이를 통해 프레임 워크는 문이 종료 된 후 지정된 개체에 대한 dispose 메서드를 호출 할 수 있습니다.
예
using 문은 StreamWriter, StreamReader 등과 같은 IDisposable을 구현할 수있는 형식과 결합 될 수 있습니다.
간단한 프로그램을 살펴 보겠습니다.
핫스팟의 네트워크 보안 키는 무엇입니까
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'); } }
산출
위 프로그램의 출력 :
내부 using 문
폐기 방법
using 문 블록 외부
설명
위의 예에서 프로그램이 실행되면 먼저 'SysObj'인스턴스가 메모리 힙에 할당됩니다. 그런 다음 using 블록이 실행을 시작하고 콘솔 내부에서 정의한 출력을 인쇄합니다. 다음으로 Using 문 블록이 끝나면 실행이 즉시 dispose 메서드로 전송됩니다.
그런 다음 코드는 명령문 블록을 종료하고 콘솔에 외부 명령문을 인쇄합니다.
C # 가상 방법
가상 방법이란?
가상 메서드는 동일한 서명이있는 파생 클래스의 메서드를 재정의하는 기능을 프로그래머에게 제공하는 클래스 메서드입니다. 가상 방법은 주로 OOP 환경에서 다형성을 수행하는 데 사용됩니다.
가상 메서드는 파생 클래스와 기본 클래스 모두에서 구현할 수 있습니다. 주로 사용자가 파생 클래스에서 더 많은 기능을 필요로 할 때 사용됩니다.
가상 메서드는 먼저 기본 클래스에서 만든 다음 파생 클래스에서 재정의됩니다. 'virtual'키워드를 사용하여 기본 클래스에서 가상 메서드를 만들 수 있으며 'override'키워드를 사용하여 파생 클래스에서 동일한 메서드를 재정의 할 수 있습니다.
가상 방법 : 기억해야 할 몇 가지 사항
- 파생 클래스의 가상 메서드에는 virtual 키워드가 있고 파생 클래스의 메서드에는 override 키워드가 있어야합니다.
- 메서드가 기본 클래스에서 가상 메서드로 선언 된 경우 파생 클래스에서 항상 해당 메서드를 재정의 할 필요는 없습니다. 즉, 파생 클래스의 가상 메서드를 재정의하는 옵션입니다.
- 메서드의 정의가 기본 및 파생 클래스 모두에있는 경우 메서드를 재정의 할 필요가 없습니다. 재정의는 둘 다 정의가 다른 경우에만 필요합니다.
- 재정의 방법을 사용하면 동일한 방법에 대해 하나 이상의 형식을 사용할 수 있으므로 다형성도 보여줍니다.
- 모든 방법은 기본적으로 가상이 아닙니다.
- 가상 수정자는 Private, Static 또는 Abstract 수정 자와 함께 사용할 수 없습니다.
C #에서 가상 키워드의 사용은 무엇입니까?
C #의 virtual 키워드는 요구 사항에 따라 파생 클래스의 기본 클래스 멤버를 재정의하는 데 사용됩니다.
virtual 키워드는 기본 클래스에서 가상 메서드를 지정하는 데 사용되며 파생 클래스에서 재정의해야하는 동일한 서명이있는 메서드 앞에 override 키워드가옵니다.
추상 방법과 가상 방법의 차이점
가상 메서드는 구현을 포함하고 파생 클래스가이를 재정의 할 수 있도록 허용하는 반면 추상 메서드는 구현을 제공하지 않으며 프로그래머가 파생 클래스에서 재정의 메서드를 작성하도록합니다.
따라서 간단히 말해서 추상 메서드에는 내부에 코드가 없지만 가상 메서드에는 자체 구현이 있습니다.
C #에서 가상과 재정의의 차이점
가상 키워드는 일반적으로 메서드, 속성 등의 서명이오고 파생 클래스에서 재정의 될 수 있습니다. override 키워드는 파생 클래스에서 재정의를 수행하기 위해 기본 클래스와 동일한 메서드 / 속성 서명을 사용하여 파생 클래스에서 사용됩니다.
C #에서 가상 메서드를 재정의해야합니까?
컴파일러는 프로그래머가 가상 메서드를 재정의하도록 강제하지 않습니다. 파생 클래스에서 항상 가상 메서드를 재정의 할 필요는 없습니다.
예
가상 방법에 대해 더 명확하게 이해하기 위해 예제를 살펴 보겠습니다.
이 예제에서는 기본 클래스에서 두 가지 다른 메서드를 사용할 것입니다. 첫 번째는 비가 상 메서드이고 다른 하나는 virtual 키워드가있는 가상 메서드입니다. 이 두 메서드는 모두 파생 클래스에서 재정의됩니다.
살펴 보겠습니다.
프로그램
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'); } }
산출
위 프로그램의 출력은 다음과 같습니다.
파생 클래스의 추가 방법입니다.
이것은 추가 방법입니다
파생 클래스의 빼기 메서드 재정의입니다.
파생 클래스의 빼기 메서드 재정의입니다.
설명
위의 예에는 Number와 Calculate라는 두 가지 클래스가 있습니다. 기본 클래스 Number에는 더하기와 빼기의 두 가지 방법이 있습니다. 여기서 더하기는 가상이 아닌 방법이고 빼기는 가상 방법입니다. 따라서이 프로그램을 실행할 때 기본 클래스 가상 메서드 'addition'이 파생 클래스 Calculate에서 재정의됩니다.
다른 클래스 'Program'에서 파생 클래스 Calculate의 인스턴스를 만들기위한 진입 점을 만든 다음 동일한 인스턴스를 기본 클래스의 인스턴스 개체에 할당합니다.
클래스 인스턴스를 사용하여 가상 및 비가 상 메서드를 호출 할 때 가상 메서드는 두 인스턴스를 모두 사용하여 재정의 된 반면 비가 상 메서드는 파생 클래스를 호출하는 동안에 만 재정의 된 것을 알 수 있습니다.
결론
C #의 using 문은 주로 리소스 관리에 사용됩니다. using 문은 개체의 존재에 대한 조건부 경계를 정의합니다.
실행이 명령문 블록 밖으로 이동하면 명령문 블록 내부에 생성 된 모든 개체를 삭제하도록 프레임 워크에 지시합니다. 명령문 내부에 정의 된 코드는 .Net 프레임 워크가 정의 된 개체에 대해 dispose 메서드를 호출 할 수 있도록 IDisposable 인터페이스도 구현해야합니다.
가상 메서드를 사용하면 사용자가 기본 클래스의 메서드와 동일한 서명이있는 파생 클래스의 메서드를 재정의 할 수 있습니다. 가상 방법은 객체 지향 프로그래밍 언어에서 다형성을 달성하는 데 사용할 수 있습니다.
가상 메서드는 파생 클래스에 추가 기능이 필요한 경우 주로 사용됩니다. 가상 메서드는 개인용 정적 또는 추상이 될 수 없습니다. 기본 클래스에서 가상 키워드를 사용하고 파생 클래스에서 키워드를 재정 의하여 정의됩니다.