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