C \ # - 범용 응용 실례

원본 글 주소:
http://www.cnblogs.com/jewleo/archive/2009/06/13/06130921_1.html
일반적인 방법
방법 은 실행 범위 에 특 정 된 일반적인 매개 변 수 를 정의 할 수 있 습 니 다. 다음 과 같 습 니 다.
public class MyClass
{
    //  MyMethod         X   
    public void MyMethod(X x)
    {
        //
    }


    //            
    public void MyMethod()
    {
        //X x;
    }
}

    
주의 하 다.

속성
화해시키다
색인 기
자신의 범 형 파 라 메 터 를 지정 할 수 없습니다. 그들 은 소속 클래스 에서 정의 하 는 범 형 파 라 메 터 를 사용 하여 만 조작 할 수 있 습 니 다.
    일반적인 방법 을 호출 할 때 호출 장소 에서 사용 할 유형 을 제공 할 수 있 습 니 다. 다음 과 같 습 니 다.
//      
MyClass myClass = new MyClass();
myClass.MyMethod(3);

 
범 형 추리
: 일반적인 방법 을 호출 할 때 C \ # 컴 파일 러 는 충분히 똑똑 하고 들 어 오 는 매개 변수 유형 을 바탕 으로 정확 한 유형 을 추정 할 수 있 으 며 완전히 허용 합 니 다.
생략한다
유형 규범 은 다음 과 같다.
//            
MyClass myClass = new MyClass();
myClass.MyMethod(3);

 주의 하 다.

일반적인 방법 은 반환 값 의 유형 에 따라 유형 을 추정 할 수 없습니다. 코드 는 다음 과 같 습 니 다.
public GenericMethodDemo()
     {        
        MyClass myClass = new MyClass();
        /****************************************************
                   “GenericMethodDemo.MyClass.MyMethod()”     。
                   。
        ***************************************************/
        int number = myClass.MyMethod();//   
     }

    public class MyClass
    {
        public T MyMethod() 
        {
            //
        }
    }

범용 의뢰
    특정한 클래스 에서 정 의 된 의뢰 는 이러한 종류의 일반적인 파 라 메 터 를 사용 할 수 있 습 니 다. 코드 는 다음 과 같 습 니 다.
public class MyClass
{
    public delegate void GenericDelegate(T t);
    public void SomeMethod(T t)
    {

    }
}
public void GenericMethodDemo()
{
    MyClass obj = new MyClass();
    MyClass.GenericDelegate del;
    del = new MyClass.GenericDelegate(obj.SomeMethod);
    del(3);
}

추 리 를 의뢰 하 다
: C \ # 방법 이 인용 한 직접 분 배 를 의뢰 변수 로 바 꿀 수 있 습 니 다.위의 코드 를 아래 와 같이 개조 하 다.
//    
 del = obj.SomeMethod;
 del(3);

범용 의뢰 의 제약

의뢰 등급 의 제약 은 의뢰 변수 와 정례 화 의뢰 를 성명 할 때 만 사용 되 며 유형 과 방법의 역할 범위 에서 실시 하 는 다른 모든 제약 과 유사 합 니 다.
. Net 에서 일반적인 파 라 메 터 를 지원 하기 위해 반 사 를 확장 하 였 습 니 다.형식 Type 은 현재 특정 유형의 실제 인삼 (또는 바 인 딩 유형) 이나 지정 되 지 않 은 유형의 범 형 (또는 바 인 딩 되 지 않 은 유형) 을 표시 할 수 있 습 니 다.C \ # 에 서 는 type: of 연산 자 를 사용 하거나 각 유형 이 지원 하 는 GetType () 을 호출 하여 모든 종류의 Type 을 얻 을 수 있 습 니 다.코드 는 다음 과 같 습 니 다:
 LinkedList list = new LinkedList();
 Type type1 = typeof(LinkedList);
 Type type2 = list.GetType();
 Response.Write(type1 == type2);

type: of 와 GetType () 도 일반적인 매개 변 수 를 조작 할 수 있 습 니 다. 다음 과 같 습 니 다.
public class MyClass
{
    public void SomeMethod(T t)
    {
        Type type = typeof(T);
        HttpContext.Current.Response.Write(type==t.GetType());
    }
}

좋은 웹페이지 즐겨찾기