인터페이스를 초기화하는 방법은 무엇입니까?

빙닌

지금까지 배운 것은 인터페이스의 인스턴스를 만들 수 없다는 것입니다.

    interface IFood
    {
        string Color { get; set; }
    }
    class Apple : IFood
    {
        public string Color { get ; set; }
    }

IFood food = new IFood(); //this gives compile error

IFood food = new Apple(); //this will work

여기까지 모든 것이 괜찮 았습니다. 하지만 함께 일할 때 Microsoft.Office.Interop.Excel아래와 같은 것을 보았습니다.

Application excel = new Application();// Application is an interface

내가 여기서 무엇을 놓치고 있습니까?

애플리케이션 인터페이스의 메타 데이터

니 코닝

COM의 상호 운용성

Microsoft.Office.ExcelApplication클래스를 포함한 API 는 C ++로 작성됩니다.

C ++의 아키텍처가 더 자유롭기 때문에 경우에 따라 인터페이스를 초기화해야합니다.

.

.NET은 CoClassCOM 개체의 특성을 사용 하여 인터페이스를 시작하는 문제를 해결합니다.

C #은 인터페이스 시작을 허용하지 않지만 CoClass속성을 사용하면 인터페이스 초기화를 클래스 라우팅 할 수 있습니다.CoClass

(천 단어에 해당하는 예제 코드) 따라서이 해결 방법을 재현 해 보겠습니다 .

[CoClass(typeof(SugarGlider))] 
[ComImport] // pretend as a COM class
[Guid("000208D5-0000-0000-C000-000000000046")] // put it randomly just to fool the ComImport
public interface ISquirrel
{
     string Foo();
}

[ClassInterface(ClassInterfaceType.None)]
public class SugarGlider : ISquirrel
{
    public string Foo(){ return "Bar"; }
}

이제 다음 통해 인터페이스를 시작할 수 있습니다.new ISquirrel()

전체 예제 및 온라인 실행 : https://rextester.com/ORAZQ51751

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

LinkedList를 초기화하는 방법은 무엇입니까?

분류에서Dev

FrameworkElement를 초기화하는 방법은 무엇입니까?

분류에서Dev

FrameworkElement를 초기화하는 방법은 무엇입니까?

분류에서Dev

Crashlytics를 초기화하는 방법은 무엇입니까?

분류에서Dev

부모 인터페이스를 구현하는 클래스의 생성자로 interface 유형의 객체를 초기화하는 방법은 무엇입니까?

분류에서Dev

Kubernetes 클러스터를 초기화 할 때 네트워크 인터페이스를 지정하는 방법은 무엇입니까?

분류에서Dev

초기화 스크립트를 기록하는 방법은 무엇입니까?

분류에서Dev

Objective-c를 사용하여 사용자 정의 초기화 구현을 인터페이스에 노출하는 방법은 무엇입니까?

분류에서Dev

PromiseLike 인터페이스를 구현하는 방법은 무엇입니까?

분류에서Dev

Guice : 인터페이스의 기본 구현 인스턴스를 주입하는 방법은 무엇입니까?

분류에서Dev

빈 개체로 인터페이스를 인스턴스화하는 방법은 무엇입니까?

분류에서Dev

컴퓨터를 초기화하는 방법은 무엇입니까?

분류에서Dev

Java에서 타이머를 초기화하는 방법은 무엇입니까?

분류에서Dev

이 초기화를 수행하는 방법은 무엇입니까?

분류에서Dev

데이터 시각화를 위해 Python을 Qlikview와 인터페이스하는 방법은 무엇입니까?

분류에서Dev

선택적 인터페이스를 만드는 방법은 무엇입니까?

분류에서Dev

인터페이스 개체를 만드는 방법은 무엇입니까?

분류에서Dev

포인터에서 스택 객체를 초기화하는 방법은 무엇입니까?

분류에서Dev

인터넷의 기본 인터페이스를 변경하는 방법은 무엇입니까?

분류에서Dev

라인에서 배열을 초기화하는 방법은 무엇입니까?

분류에서Dev

JQuery 플러그인을 초기화하는 방법은 무엇입니까?

분류에서Dev

FTP를 통해 git repo를 초기화하는 방법은 무엇입니까?

분류에서Dev

런타임에 peewee SQLite 데이터베이스를 초기화하는 방법은 무엇입니까?

분류에서Dev

SQLite 데이터베이스를 초기화하는 적절한 방법은 무엇입니까?

분류에서Dev

초기화 목록을 사용하여 std :: variant를 초기화하는 방법은 무엇입니까?

분류에서Dev

기존 봉인 된 클래스를 올바르게 인터페이스하는 방법은 무엇입니까?

분류에서Dev

기존 봉인 된 클래스를 올바르게 인터페이스하는 방법은 무엇입니까?

분류에서Dev

커서를 올바르게 초기화하는 방법은 무엇입니까?

분류에서Dev

lateinit 변수를 초기화하는 방법은 무엇입니까?

Related 관련 기사

  1. 1

    LinkedList를 초기화하는 방법은 무엇입니까?

  2. 2

    FrameworkElement를 초기화하는 방법은 무엇입니까?

  3. 3

    FrameworkElement를 초기화하는 방법은 무엇입니까?

  4. 4

    Crashlytics를 초기화하는 방법은 무엇입니까?

  5. 5

    부모 인터페이스를 구현하는 클래스의 생성자로 interface 유형의 객체를 초기화하는 방법은 무엇입니까?

  6. 6

    Kubernetes 클러스터를 초기화 할 때 네트워크 인터페이스를 지정하는 방법은 무엇입니까?

  7. 7

    초기화 스크립트를 기록하는 방법은 무엇입니까?

  8. 8

    Objective-c를 사용하여 사용자 정의 초기화 구현을 인터페이스에 노출하는 방법은 무엇입니까?

  9. 9

    PromiseLike 인터페이스를 구현하는 방법은 무엇입니까?

  10. 10

    Guice : 인터페이스의 기본 구현 인스턴스를 주입하는 방법은 무엇입니까?

  11. 11

    빈 개체로 인터페이스를 인스턴스화하는 방법은 무엇입니까?

  12. 12

    컴퓨터를 초기화하는 방법은 무엇입니까?

  13. 13

    Java에서 타이머를 초기화하는 방법은 무엇입니까?

  14. 14

    이 초기화를 수행하는 방법은 무엇입니까?

  15. 15

    데이터 시각화를 위해 Python을 Qlikview와 인터페이스하는 방법은 무엇입니까?

  16. 16

    선택적 인터페이스를 만드는 방법은 무엇입니까?

  17. 17

    인터페이스 개체를 만드는 방법은 무엇입니까?

  18. 18

    포인터에서 스택 객체를 초기화하는 방법은 무엇입니까?

  19. 19

    인터넷의 기본 인터페이스를 변경하는 방법은 무엇입니까?

  20. 20

    라인에서 배열을 초기화하는 방법은 무엇입니까?

  21. 21

    JQuery 플러그인을 초기화하는 방법은 무엇입니까?

  22. 22

    FTP를 통해 git repo를 초기화하는 방법은 무엇입니까?

  23. 23

    런타임에 peewee SQLite 데이터베이스를 초기화하는 방법은 무엇입니까?

  24. 24

    SQLite 데이터베이스를 초기화하는 적절한 방법은 무엇입니까?

  25. 25

    초기화 목록을 사용하여 std :: variant를 초기화하는 방법은 무엇입니까?

  26. 26

    기존 봉인 된 클래스를 올바르게 인터페이스하는 방법은 무엇입니까?

  27. 27

    기존 봉인 된 클래스를 올바르게 인터페이스하는 방법은 무엇입니까?

  28. 28

    커서를 올바르게 초기화하는 방법은 무엇입니까?

  29. 29

    lateinit 변수를 초기화하는 방법은 무엇입니까?

뜨겁다태그

보관