난 그냥 당신이 C#에서 할 수있는 것으로 나타났습니다 :C# : 어떻게 작동합니까? Unit myUnit = 5;
이 일을하는 대신 :
Unit myUnit = new Unit(5);
누구도 어떻게 내 구조체와 함께 이것을 달성 할 수 있습니까? 리플렉터가있는 Unit 구조체를 살펴본 결과 TypeConverter 특성이 사용되고 있음을 알았지 만 구조체에 대한 사용자 지정 TypeConverter를 만든 후에도 여전히이 편리한 구문을 허용하도록 컴파일러를 얻을 수 없었습니다.
우 항상 새로운 것들 배우기 - 나는 결코 전에 이것을 보지 못했다고 믿을 수 없다. – cbp
"명시 적"캐스트도있다. 똑같이 작동하지만 호출자는 (유닛)을 추가해야한다. 데이터 손실의 위험이있을 때 일반적으로 사용됨 (정밀도/범위/스케일/등 - 예 : float => int) –
연산자를 오버로딩하는 것은 매우 강력하지만 그렇게 할 때 가볍게 트레드합니다. 유지 보수 프로그래머에게는 매우 예측할 수 없습니다. 적절할 때 (예 : 유닛 케이스) 사용하지만 과용하지 마십시오. (그리고 항상 잘 문서화되어 있는지 확인하십시오!) –