반응형
정적 암시 적 연산자
최근 에이 코드를 찾았습니다.
public static implicit operator XElement(XmlBase xmlBase)
{
return xmlBase.Xml;
}
무슨 static implicit operator
뜻입니까?
이것은 변환 연산자 입니다. 이 코드를 작성할 수 있음을 의미합니다.
XmlBase myBase = new XmlBase();
XElement myElement = myBase;
그리고 컴파일러는 불평하지 않을 것입니다! 런타임에 변환 연산자가 실행 myBase
되어 인수로 전달 되고 유효한 XElement
결과를 반환합니다 .
개발자가 컴파일러에게 알려주는 방법입니다.
"이것들은 완전히 관련이없는 두 가지 유형처럼 보이지만 실제로는 다른 형식으로 변환하는 방법이 있습니다.이를 수행하는 방법에 대한 논리를 다루겠습니다."
당신은 변환 할 수 있습니다 암시 운영자 수단 등 XmlBase
을 XElement
암시.
XmlBase xmlBase = WhatEverGetTheXmlBase();
XElement xelement = xmlBase;
//no explicit convert here like: XElement xelement = (XElement)xmlBase;
암시 적 변환 연산자입니다 ( (type)
변환 구문 이 필요한 명시 적 연산자와 반대 )
또 다른 흥미로운 사용법은 (Unity가 객체 (따라서 MonoBehavior의 인스턴스)가 null인지 확인한 것입니다)입니다.
public static implicit operator bool (CustomClass c)
{
if (c == null) return false;
else return true;
}
그렇게하면 다음과 같이 할 수 있습니다 :
void Method ()
{
CustomClass c1 = null;
CustomClass c2 = new CustomClass ();
bool b1 = c1; // is false
bool b2 = c2; // is true
if (!c1 && c2)
{
// Do stuff
}
}
분명히 가장 악명 높은 용도는 클래스 중 하나를 다른 클래스로 변환하는 데 사용하는 것일 수 있습니다. 그러나 기본 유형과 함께 사용하는 것도 고려할 가치가 있습니다.
참고 URL : https://stackoverflow.com/questions/4273743/static-implicit-operator
반응형
'IT박스' 카테고리의 다른 글
AJAX를 사용하는 웹 사이트에서 동적 콘텐츠를 긁어내는 데 scrapy를 사용할 수 있습니까? (0) | 2020.06.26 |
---|---|
“어설 션”키워드는 무엇을합니까? (0) | 2020.06.26 |
파이썬에서 빈 문자열을 분할 할 때 split ( '\ n')이 [ '']를 반환하는 동안 split ()이 빈 목록을 반환하는 이유는 무엇입니까? (0) | 2020.06.26 |
ConcurrentHashMap이 널 키와 값을 방지하는 이유는 무엇입니까? (0) | 2020.06.26 |
C #의 열거 형 내부 메서드 (0) | 2020.06.26 |