Има ли начин в C# да се добавят имплицитни преобразувания към типове, които вече са дефинирани в други сборки?
Например, ако използвам две различни сглобки, всяка от които предоставя свой собствен Vector3 struct
и го използвам в своите API, би било хубаво да мога да дефинирам преобразуване веднъж и след това просто да предам Foo.Vector3
на метод, който очаква Bar.Vector3
, и го преобразувайте автоматично.
Ако имах източника за библиотеките, тогава бих могъл да добавя имплицитни оператори за преобразуване. Без този източник в момента правя преобразуването изрично сам с помощна функция всеки път. Надявам се на по-хубав начин.
Осъзнавам, че мога да създам свой собствен Vector3 struct
с имплицитни оператори за преобразуване към и от другите две структури, но това няма да разреши всички случаи, в които искам директно да предам обект на един (външно дефиниран) тип към метод, очакващ другия.
Допълнителен въпрос: има ли нещо, което авторите на библиотеки, които излагат неща като Vector3 структура в своя API, трябва да направят, за да улеснят използването в това отношение?