여러 클래스에 대한 C # 일반 매개 변수

DrTom

메서드 호출의 매개 변수를 두 개의 다른 클래스 중 하나로 제한하려고합니다. 가능한지 또는 공통 기본 클래스에서 두 클래스를 모두 상속해야하는지 모르겠습니다.

지금까지 사용하고 있지만이 유형을 안전하게 만들고 싶습니다.

        public static AdoptionApplicationCollection GetApplicationsByApplicant (object applicant)
        {
            if (applicant.GetType() == typeof(Person))
            {
                // blah
            }
            else if (applicant.GetType() == typeof(Organization))
            {
                // blah
            }
            // A whole lot more blah
        }

신청자를 Person 또는 Organization 유형의 제네릭으로 만들고 싶습니다 .

QmlnR2F5

내 원래 답변에 추가하면 패턴 일치 라는 질문의 코드에서 수행하는 작업을 수행하는 또 다른 방법이 있습니다 . ifs 를 사용하는 대신 C#이 추악한 유형없이 유형을 캐스팅하고 확인하는 단축키가 있습니다.typeof()

public static AdoptionApplicationCollection GetApplicationsByApplicant (object applicant)
{
    switch(applicant)
    {
        case Person p:
            Console.WriteLine("The person is " + p);
            break;

        case Organization o:
            Console.WriteLine("The organization is " + o);
             break;
    }
}

Person경우 p객체는 applicant자동으로 Person유형 으로 캐스팅됩니다 . 에서 Organization의 경우는이 o될 것입니다 applicant자동으로 주조 Organization유형입니다. 이것은 코드를 훨씬 더 읽기 쉽게 만들 수있는 매우 유용하고 편리한 도구입니다. 그냥이 있다고 염두에 두어야 C # 7.0 그래서 당신이 해당 버전 이상에있는 확인 기능을 제공합니다.

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

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

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

일반 매개 변수에 대한 연관 클래스 유지

분류에서Dev

단일 변수에 대한 여러 유형 (매개 변수 / 반환 유형)

분류에서Dev

클래스 및 클래스 매개 변수에 대한 교수의 지침과 관련하여 매우 혼란 스러움-C ++ 과정 소개

분류에서Dev

여러 매개 변수에 대한 C ++ 부분 클래스 템플릿 전문화

분류에서Dev

일반 매개 변수에 대한 문자열 이름을 사용하여 클래스 생성

분류에서Dev

여러 매개 변수에 대한 CatBoostClassifier

분류에서Dev

클래스 Evidence C #의 AddAssemblyEvidence ()에 대한 매개 변수

분류에서Dev

C #의 클래스 매개 변수에 대한 모의 클래스

분류에서Dev

C ++의 클래스에서 여러 매개 변수가있는 일반 함수를 친구로 만들 수 있습니까?

분류에서Dev

Ruby : 클래스 내의 여러 메소드에 동일한 매개 변수 전달

분류에서Dev

동일한 유형의 여러 매개 변수에 대한 유형 힌트?

분류에서Dev

동일한 기능에 대한 여러 "사용자 옵션"매개 변수

분류에서Dev

동일한 필드에 대한 Birt 보고서 여러 매개 변수

분류에서Dev

여러 클래스와 함께 일반 / 매개 변수화 된 Java 사용

분류에서Dev

일반 클래스 매개 변수를 사용하여 하위 유형으로 메서드를 재정의 할 수없는 이유에 대한 설명

분류에서Dev

일반 매개 변수 Form의 C # Windows Forms 하위 클래스

분류에서Dev

매개 변수가 클래스의 매개 변수와 동일한 제네릭에 클래스 매핑

분류에서Dev

C #에서 OData 작업에 대한 매개 변수로 클래스 선언

분류에서Dev

여러 매개 변수로 복잡한 클래스 재정의

분류에서Dev

일반 형식 매개 변수 C #-일반 클래스 반환 형식 방법

분류에서Dev

클래스 매개 변수 및 반환 값에 대한 형식 주석

분류에서Dev

여러 변수에 대한 매개 변수 확장

분류에서Dev

여러 매개 변수에 대한 매핑-pmap_dfr 사용

분류에서Dev

여러 기능에 동일한 매개 변수 사용

분류에서Dev

Swift-웹 서비스에 대한 여러 매개 변수

분류에서Dev

다중 유형 매개 변수 클래스 / 함수의 여러 매개 변수에 대한 유형 별칭을 만들 수 있습니까?

분류에서Dev

반환 된 매개 변수에 대한 useReducer의 일반 유형

분류에서Dev

c # 다른 클래스의 이벤트에 대한 매개 변수를 기본 클래스로 전달

분류에서Dev

여러 클래스에서 동일한 변수에 액세스

Related 관련 기사

  1. 1

    일반 매개 변수에 대한 연관 클래스 유지

  2. 2

    단일 변수에 대한 여러 유형 (매개 변수 / 반환 유형)

  3. 3

    클래스 및 클래스 매개 변수에 대한 교수의 지침과 관련하여 매우 혼란 스러움-C ++ 과정 소개

  4. 4

    여러 매개 변수에 대한 C ++ 부분 클래스 템플릿 전문화

  5. 5

    일반 매개 변수에 대한 문자열 이름을 사용하여 클래스 생성

  6. 6

    여러 매개 변수에 대한 CatBoostClassifier

  7. 7

    클래스 Evidence C #의 AddAssemblyEvidence ()에 대한 매개 변수

  8. 8

    C #의 클래스 매개 변수에 대한 모의 클래스

  9. 9

    C ++의 클래스에서 여러 매개 변수가있는 일반 함수를 친구로 만들 수 있습니까?

  10. 10

    Ruby : 클래스 내의 여러 메소드에 동일한 매개 변수 전달

  11. 11

    동일한 유형의 여러 매개 변수에 대한 유형 힌트?

  12. 12

    동일한 기능에 대한 여러 "사용자 옵션"매개 변수

  13. 13

    동일한 필드에 대한 Birt 보고서 여러 매개 변수

  14. 14

    여러 클래스와 함께 일반 / 매개 변수화 된 Java 사용

  15. 15

    일반 클래스 매개 변수를 사용하여 하위 유형으로 메서드를 재정의 할 수없는 이유에 대한 설명

  16. 16

    일반 매개 변수 Form의 C # Windows Forms 하위 클래스

  17. 17

    매개 변수가 클래스의 매개 변수와 동일한 제네릭에 클래스 매핑

  18. 18

    C #에서 OData 작업에 대한 매개 변수로 클래스 선언

  19. 19

    여러 매개 변수로 복잡한 클래스 재정의

  20. 20

    일반 형식 매개 변수 C #-일반 클래스 반환 형식 방법

  21. 21

    클래스 매개 변수 및 반환 값에 대한 형식 주석

  22. 22

    여러 변수에 대한 매개 변수 확장

  23. 23

    여러 매개 변수에 대한 매핑-pmap_dfr 사용

  24. 24

    여러 기능에 동일한 매개 변수 사용

  25. 25

    Swift-웹 서비스에 대한 여러 매개 변수

  26. 26

    다중 유형 매개 변수 클래스 / 함수의 여러 매개 변수에 대한 유형 별칭을 만들 수 있습니까?

  27. 27

    반환 된 매개 변수에 대한 useReducer의 일반 유형

  28. 28

    c # 다른 클래스의 이벤트에 대한 매개 변수를 기본 클래스로 전달

  29. 29

    여러 클래스에서 동일한 변수에 액세스

뜨겁다태그

보관