암시 적 캐스팅을 int에서 A
으로 오버로드 할 때 연산의 왼쪽면 인스턴스를 얻을 수있는 방법이 있습니까? 이처럼암시 적 캐스트 연산자의 왼쪽 편에 대한 참조
:
public class A
{
int myInt;
public static implicit operator A(int x)
{
a.myInt = x;
}
}
다음
A myA = new A();
myA = 2;
myA.myInt
내가 인터넷에서 검색하지만이 정확한 문제에 대한 답을 찾을 수 없습니다 2
이되도록. 정적 함수이기 때문에 가능하지 않다고 생각합니다. 함수에 두 개의 매개 변수를 넣으려고하면 오류가 발생합니다. 또한 null 변수 (예 : A myA;
과 같이 선언 한 경우)에서이 작업을 수행하려고하면 오류가 발생하는 것을 확인할 수 있습니다. 하지만 구조체에서 할 수있다. (왜냐하면 구조체가 널이 될 수 없다는 것을 알기 때문에 또는 널을 할당 할 수 없기 때문에 내가 틀렸다면 나를 바로 잡아라.).
나는이 작품과 비슷한 것을 만들 수있는 일종의 마법사가 있는지 궁금합니다.
그것은 내가 할 때'(MyDestType)을 참조로 "는"'MyDestType'이 있어야한다 myExpr' 말하는 것과 같다. 그러나 캐스트가 발생하기 전에 __ myDestType이 없습니다. 변환 연산자 본문에서 먼저 인스턴스를 로컬 변수로 만듭니다. 그런 다음 필요에 따라 수정할 수 있습니다. 마지막으로 반환하십시오. 위의 내용은 합법적 인 C#이 아닙니다. –
= 연산자를 오버로드하면 어떻게됩니까? 작업의 왼쪽에 대한 참조를 얻을 수있는 방법이 있습니까? – ItsaMeTuni
@ItsaMeTuni 해당 운영자에게 과부하를 걸 수 없습니다. – Servy