C# 유형 변환, is, as, 단일 물음표, 이중 물음표 해독

4210 단어 유형 변환

C#에서 유형의 변환은 명시적 및 암시적 두 가지로 나뉘는데 기본 규칙은 다음과 같습니다.


4
  • 기본 클래스 대상이 하위 클래스 대상으로 전환되면 반드시 현식 변환을 해야 한다. 규칙: (유형 이름) 대상

  • 4
  • 값 유형과 인용 유형의 변환은 포장(boxing)이나 해체(unboxing)를 사용합니다

  • 4
  • 자류가 기류 대상으로 전환되었다

  • 4
  • 기본 유형이 서로 간에 전환되면 Convert 클래스로 실현할 수 있다

  • 4
  • 문자열 유형을 대응하는 기본 유형으로 변환하려면 Parse 방법을 사용하고 String 유형을 제외한 다른 유형은 모두 Parse 방법을 사용할 수 있습니다

  • 4
  • GetType을 사용하면 객체의 정확한 유형을 얻을 수 있습니다

  • 4
  • 자류가 기류로 전환되고 은식 전환을 사용한다

  • 다음은 AS와 IS 조작부호에 대해 말씀드리겠습니다.


    4
  • as: 호환되는 참조 유형 간에 변환을 수행하는 데 사용됩니다
  • is: 객체가 지정된 유형과 호환되는지 확인합니다

  • 4
  • as는 전환과 동시에 호환성을 판단합니다. 전환이 불가능할 경우 as는null(새로운 대상이 발생하지 않음)로 돌아가 이상을 일으키지 않습니다.AS가 생기면 앞으로try-catch로 유형 전환의 판단을 하지 않으려고 합니다.따라서 as 변환에 성공하면null인지 아닌지를 판단해야 합니다

  • 4
  • as는 인용 유형 변환이나 포장 변환으로 값 유형과 변환할 수 없습니다.만약 값 형식이라면 is와 결합해서만 강제로 변환할 수 있습니다.
     object objTest = 11;
    
     if( objTest is int )
    
     {
    
         int nValue = (int )objTest;
    
     }


  • 4
  • is는 유형 호환 판단만 하고 진정한 유형 전환을 실행하지 않는다.true 또는 false를 반환합니다. null은 반환되지 않으며 객체가 null이면 false도 반환됩니다

  • 4
  • 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의 방법에 비해 효율이 높다.

    C#에서 물음표 사용법(표현식 아님): 단일 물음표, 이중 물음표.


    4
  • 물음표: 변수에 초기 값을 설정할 때 변수 (int 형식) 에null을 부여하는 것이지 0이 아닙니다

  • 4
  • 쌍물음표: 값을 판단하고 부여하는 데 사용되며, 현재 변수가null인지 아닌지를 판단하고, 만약 그렇다면 새로운 값을 부여할 수 있으며, 그렇지 않으면 건너뜁니다.
     public int? para;
    
     //public int para; , , !
    
     public int par()
    
     {
    
         return this.para ?? 0;
    
     }


  • 다음으로 이동:http://www.cnblogs.com/zjp8023/archive/2008/11/25/ASIS.html

    좋은 웹페이지 즐겨찾기