C#의 as 및 is 사용법 상세 설명

3551 단어

C#의 as 및 is 사용법 상세 설명


c#의 유형 변환


c#의 유형 변환은 명시적 및 암시적 기본 규칙과 같이 두 가지로 나뉘어 있습니다.
  • 기본 클래스 대상이 하위 클래스 대상으로 전환되면 반드시 현식 변환, 규칙: (유형명) 대상이 되어야 한다.
  • 값 형식과 인용 형식의 변환은 컨테이너(boxing)나 컨테이너(unboxing)를 사용합니다.
  • 기본 유형이 서로 간에 전환되면 Covent 클래스로 실현할 수 있다.
  • 문자열 유형을 대응하는 기본 형식으로 변환하려면 Parse 방법을 사용하고 String 형식을 제외한 다른 형식은 모두 Parse 방법을 사용할 수 있습니다.
  • GetType을 사용하면 객체의 정확한 유형을 얻을 수 있습니다.
  • 자류가 기류로 전환되고 은식 전환을 채택한다.

  • AS 및 IS


    AS: 호환되는 참조 유형 간에 변환을 수행할 수 있습니다.IS: 객체가 특정 유형과 호환되는지 개념적으로 분석하려면 다음과 같이 하십시오.
  • AS는 전환과 동시에 호환성을 판단할 수 있으며, 전환이 불가능할 경우 AS는 null(새로운 대상이 발생하지 않음)로 되돌아와 이상을 일으키지 않습니다.AS가 생기면 앞으로try-catch로 장르를 바꾸는 판단을 하지 않으려고 합니다.따라서 as변환에 성공하면null인지 아닌지를 판단해야 합니다.
  • AS는 참조 유형 변환 또는 포장 변환이므로 값 유형과 변환할 수 없습니다.만약 값 유형이 is와 결합해서만 강제로 변환할 수 있다면 코드는 다음과 같다:object objTest = 11;if( objTest is int ) { int nValue = (int )objTest; }
  • IS는 유형 호환 판단만 할 뿐 실제 유형 전환은 수행하지 않는다.true 또는false를 되돌려줍니다.null을 되돌려주지 않고, 대상이null이면false를 되돌려줍니다.
  • AS모드의 효율은 IS모드보다 높다. IS의 유형 전환을 빌려 두 차례의 유형 호환성 검사를 실시해야 하기 때문이다.AS는 유형 호환 검사를 한 번만 하고, null 검사를 한 번 하면, null 검사는 유형 호환 검사보다 빠르다.
  • 데이터 유형 변환에서 C#는 다른 언어에 비해 엄격하기 때문에 데이터 변환을 현시적으로 해야 한다.조작의 편의를 위해 C#도 is조작부호를 제공하여 변환을 진행하는데 매우 편리하다. 이것은 자동으로 실례가 유형과 호환되는지 확인하고 결과를 되돌려준다.그리고 이상을 던지지 않습니다.대상이 null로 인용되면 is는false를 되돌려줍니다.
  • if (cls1 is Class2) 
    { Class2 cls2 = (Class2)cls1; } 
    else System.Console.WriteLine("Error 2!");
    

    다른 방식에 비해 as 조작부호를 변환하면 as는 is보다 성능을 약간 높일 수 있다.
     Class2 cls2 = cls1 as Class2; 
     if (cls2!=null)
      System.Console.WriteLine("Ok"); 
     else System.Console.WriteLine("Error!");
    

    as는 인용 대상이 호환되는지 확인합니다. 호환되지 않으면null로 되돌아오기 때문에null의 판단이 필요합니다.두 가지 방식을 비교하면 is는 두 번의 대상 유형 검사를 해야 하고 as는 한 번의 대상 유형 검사를 해야 하며, 다시 한 번null 검사를 해야 하며,null 검사 비용은 대상 유형 검사보다 적다.AS의 방법에 비해 효율이 높다.

    좋은 웹페이지 즐겨찾기