C#의 as 및 is 차이점
5634 단어 C#
is 조작부호를 변환합니다. 시국이 형식과 호환되는지 자동으로 확인하고 결과를 되돌려줍니다.그리고 이상을 던지지 않습니다.대상이 null로 인용되면 is는false를 되돌려줍니다.
if (cls1 is Class2)
{
Class2 cls2 = (Class2)cls1;
}
else
System.Console.WriteLine("Error 2!");
as 연산자를 변환하려면 다음과 같이 하십시오.
Class2 cls2 = cls1 as Class2;
if (cls2!=null)
System.Console.WriteLine("Ok");
else
System.Console.WriteLine("Error!");
두 가지 방식을 비교하면 is는 두 번의 대상 유형 검사를 해야 하고 as는 한 번의 대상 유형 검사를 해야 하며, 다시 한 번null 검사를 해야 하며,null 검사 비용은 대상 유형 검사보다 적다.상대적으로 as의 방법은 효율이 높다. 이제 is와 as의 용도를 알게 되었다. 주로 유형의 전환과 판단이다. 만약에 유형이 일치하는지 검사하기만 하면 is만 사용하면 된다. 만약에 유형의 전환을 하려면 as를 직접 사용할 수 있다.사실 강제 변환을 직접 할 수 있습니다. 다만 형식이 맞지 않을 때 오류가 발생할 수 있습니다.try {} catch () {}를 이용해서 할 수 있지만, 던진 이상은 무엇입니까?
유형 변환 1.모든 유형은 기본 유형으로 변환할 수 있으며 스텔스 변환으로 완성할 수 있다.2. 모든 유형이 파생 유형으로 변환될 때 표시된 변환이 있어야 합니다.예: (유형 이름) 객체 이름,3. GetType을 사용하면 모든 객체의 정확한 유형을 얻을 수 있습니다.4. 기본 유형은 Convert 클래스를 사용하여 유형 변환을 수행할 수 있습니다.5.string을 제외한 다른 유형은Parse 방법이 있으며 문자열 형식을 대응하는 기본 형식으로 변환하는 데 사용됩니다.6. 값 유형과 인용 유형의 변환을 포장(boxing) 또는 해체(unboxing)라고 한다.
2. is/as 예
is 변환 규칙:
object o ="abc";
if(oisstring) //
{
string s = (string)o; // ,
MessageBox.Show(" !");
}
else
{
MessageBox.Show(" !");
}
as 변환 규칙:
1. 대상 유형의 호환성을 검사하고 변환 결과를 되돌려주며 호환되지 않으면null로 되돌려줍니다.2. 이상을 던지지 않는다.3. 결과가 비어 있는 것으로 판단되면 강제 형식 변환을 실행하면 NullReference Exception 이상을 던집니다.
object o ="abc";
string s = oasstring;// ,
if(s !=null)
MessageBox.Show(" !");
else
MessageBox.Show(" !");
요약: Is는 명시적으로 변환하기 전에 호환성 검사를 수행합니다. As는 유형 호환성 검사를 수행하고 결과를 반환합니다.
전재 설명: 원본 링크:https://blog.csdn.net/pitt_xiong/article/details/7409875
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
WebView2를 Visual Studio 2017 Express에서 사용할 수 있을 때까지Evergreen .Net Framework SDK 4.8 VisualStudio2017에서 NuGet을 사용하기 때문에 패키지 관리 방법을 packages.config 대신 PackageReference를 사용해야...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.