예를 들어 C#의 인터페이스란 무엇입니까?
⚡ 스마트 요약
C#의 인터페이스는 con을 정의합니다.trac클래스가 구현해야 하는 메서드와 속성을 지정하는 것으로, 실제 코드는 제공하지 않습니다. 구현 클래스는 구체적인 동작을 제공하므로, 서로 관련 없는 유형 간에도 느슨한 결합과 다중 상속이 가능합니다.

C#의 인터페이스란 무엇입니까?
An 인터페이스 C#에서 `con`은 클래스와 함께 사용되어 연결을 정의합니다.trac인터페이스는 클래스가 애플리케이션에 무엇을 제공할지에 대한 합의입니다. 인터페이스는 클래스가 수행할 수 있는 연산을 정의합니다. 인터페이스는 속성과 메서드를 선언합니다. 메서드가 정확히 무엇을 할지는 클래스의 몫입니다.
콘솔 애플리케이션에서 클래스를 변경하여 인터페이스의 예를 살펴보겠습니다. 인터페이스를 사용하여 실행할 수 있는 것이 없기 때문에 코드를 실행하지 않을 것입니다.
C# 인터페이스 예
인터페이스 클래스를 만들어 봅시다. 클래스 이름은 "Guru99Interface." 그러면 우리의 메인 클래스는 정의된 인터페이스를 확장하게 됩니다. 모든 코드는 Program.cs 파일에 작성해야 합니다.
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace DemoApplication { interface IGuru99Interface { void SetTutorial(int pID, string pName); String GetTutorial(); } class Guru99Tutorial : IGuru99Interface { protected int TutorialID; protected string TutorialName; public void SetTutorial(int pID, string pName) { TutorialID = pID; TutorialName = pName; } public String GetTutorial() { return TutorialName; } static void Main(string[] args) { Guru99Tutorial pTutor = new Guru99Tutorial(); pTutor.SetTutorial(1,".Net by Guru99"); Console.WriteLine(pTutor.GetTutorial()); Console.ReadKey(); } } }
Code 설명:-
여기서는 코드의 중요한 부분을 설명합니다.
- 먼저 “라는 인터페이스를 정의합니다.Guru99인터페이스." 여기서 "인터페이스"라는 키워드는 인터페이스를 정의하는 데 사용됩니다.
- 다음으로, 우리는 인터페이스에서 사용될 메소드를 정의합니다. 이 경우, 우리는 이전의 모든 예제에서 사용된 것과 동일한 메소드를 정의합니다. 인터페이스는 메소드를 선언할 뿐이라는 점에 유의하세요. 그것은 그 안의 코드를 정의하지 않습니다.
- 그런 다음 우리는 우리의 것을 만듭니다. Guru99Tutorial 클래스는 인터페이스를 확장합니다. 여기에 인터페이스에 선언된 다양한 메서드를 정의하는 코드를 작성합니다. 이러한 코딩 방식은 다음과 같은 결과를 가져옵니다.
- 이는 수업이 제대로 진행되도록 보장합니다. Guru99Tutorial은 "SetTutorial" 및 "GetTutorial" 메서드에 필요한 코드만 추가하고 그 외에는 아무것도 추가하지 않습니다.
- 또한 인터페이스가 사기처럼 작동하도록 보장합니다.tract. 그 수업 계약을 준수해야 합니다tract. 그래서 만약 그 con이trac해당 코드에 "SetTutorial"과 "GetTutorial"이라는 두 가지 메서드가 있어야 한다고 명시되어 있다면, 그렇게 되어야 합니다.
C# 인터페이스 vs. 절대값trac티 클래스
초보자들이 흔히 묻는 질문 중 하나는 C# 인터페이스가 기존 인터페이스와 어떻게 다른가 하는 것입니다. ABStract 클래스둘 다 단점을 정의합니다.trac다른 유형들도 있지만, 각각 다른 설계 목표를 가지고 있습니다.
주요 차이점은 다음과 같습니다.
- 구현 : 인터페이스는 선언만 포함하는 반면, 절대값은 선언만 포함합니다.tract 클래스는 abs를 모두 제공할 수 있습니다.tract 멤버와 완벽하게 구현된 메서드.
- 다중 상속: 클래스는 여러 인터페이스를 구현할 수 있지만, 하나의 절대 클래스만 상속받을 수 있습니다.tract 클래스.
- 상태: 복근trac클래스는 필드, 생성자 및 데이터를 포함하는 속성을 가질 수 있지만 인터페이스는 인스턴스 상태를 저장할 수 없습니다.
- 접근 제한자: ABStrac클래스 멤버는 public, protected 또는 private일 수 있지만, 기존 인터페이스 멤버는 암묵적으로 public입니다.
- 사용 사례 : 서로 관련 없는 유형에 걸쳐 기능을 추가하기 위해 인터페이스를 사용하고, 절대적인tract 클래스는 밀접하게 관련된 유형 간에 공통 코드를 공유하기 위한 것입니다.
간단히 말해, 인터페이스는 클래스가 무엇을 할 수 있는지를 설명하는 반면, 절대적인 것은 클래스가 무엇을 할 수 있는지를 설명합니다.tract 클래스는 또한 그 과정이 어떻게 진행되는지 일부를 정의할 수도 있습니다.
C#에서 여러 인터페이스를 구현하는 방법
클래스 상속과 달리 C#에서는 하나의 클래스가 여러 인터페이스를 구현할 수 있습니다. 이러한 특징 덕분에 C#은 여러 기본 클래스를 동시에 상속할 때 발생하는 모호함 없이 안전한 다중 상속 방식을 제공합니다.
여러 인터페이스를 구현하려면 클래스 이름 뒤에 인터페이스들을 나열하고 쉼표로 구분합니다. 그런 다음 클래스는 구현하는 각 인터페이스에 선언된 모든 메서드를 정의해야 합니다.
단계 1) 각각 고유한 메서드를 가진 두 개의 인터페이스를 선언하십시오.
단계 2) 두 인터페이스를 모두 구현하는 클래스를 생성하고, 인터페이스 이름은 쉼표로 구분하세요.
단계 3) 각 인터페이스에 선언된 모든 멤버에 대해 메서드 본문을 제공하십시오.
아래 예시는 I 인터페이스를 구현하는 Document 클래스를 보여줍니다.Readable 그리고 IWritable 인터페이스를 제공합니다.
using System; namespace DemoApplication { interface IReadable { void Read(); } interface IWritable { void Write(); } class Document : IReadable, IWritable { public void Read() { Console.WriteLine("Reading the document"); } public void Write() { Console.WriteLine("Writing to the document"); } static void Main(string[] args) { Document doc = new Document(); doc.Read(); doc.Write(); Console.ReadKey(); } } }
Code 설명:-
- 우리는 두 개의 인터페이스를 선언합니다. IReadable 그리고 IWritable 인터페이스가 있습니다. 각 인터페이스는 본문이 없는 단일 메서드를 선언합니다.
- Document 클래스는 콜론 뒤에 쉼표로 구분하여 두 인터페이스를 모두 나열하므로 두 인터페이스 모두를 준수하는 데 동의하는 것입니다.tracTS.
- 그다음 클래스는 Read 및 Write 메서드를 정의합니다. 건너뛰기ping 두 방법 모두 컴파일 오류를 발생시킬 것입니다.
- Main 메서드는 Document 객체를 생성하고 두 메서드를 모두 호출하여 해당 클래스가 두 인터페이스를 만족함을 증명합니다.
프로그램이 실행되면 출력됩니다. 문서를 읽다 첫 번째 줄에 그리고 문서에 쓰기 두 번째 줄에 있습니다. 이 패턴은 각 조건을 유지합니다.trac작고 집중적인 구조 덕분에 Document 클래스는 테스트 및 확장이 더 쉽습니다.
C#에서 인터페이스를 사용하는 장점
인터페이스는 코드를 유연하게 만들고 유지 관리를 용이하게 해주기 때문에 전문적인 C# 프로젝트에서 널리 사용됩니다. 인터페이스를 사용하면 일관된 방식으로 프로그래밍할 수 있습니다.trac구체적인 계급이라기보다는.
주요 장점은 다음과 같습니다.
- 느슨한 결합: Code 특정 클래스가 아닌 인터페이스에 의존하므로 구현이 변경되더라도 호출하는 부분이 손상되지 않습니다.
- 다중 상속: 클래스는 여러 인터페이스로부터 동작을 상속받을 수 있는데, 이는 일반적인 클래스 상속에서는 불가능한 일입니다.
- 테스트 가능성: 인터페이스를 사용하면 단위 테스트 중에 실제 클래스를 모의 객체로 쉽게 교체할 수 있습니다.
- 의존성 주입: 프레임워크는 런타임에 인터페이스 구현체를 주입하는데, 이는 SOLID 원칙의 핵심 개념입니다.
- 일관성 : 모든 구현 클래스는 동일한 멤버 집합을 제공해야 하므로 API의 예측 가능성이 유지됩니다.
이러한 이점 때문에 인터페이스는 대부분의 최신 C# 디자인 패턴 및 애플리케이션 프레임워크의 핵심에 자리 잡고 있습니다.

