Итак, у меня есть два класса, предоставляемые MonoGame: Color и Vector4.Эти два класса можно интерпретировать как одно и то же: Vector4 может хранить значения R, G, B и A цвета.Я пытаюсь написать неявный (явный тоже хорошо, если это требуется) оператор преобразования, чтобы перейти от Color к Vector4.Как я могу сделать это, не записывая в исходный код MonoGame?
Попытка определить его в несвязанном классе приводит к такому страшному «пользовательскому преобразованию, которое необходимо преобразовать в или из включающего типа», и делать это внутриСамо пространство имен, а не класс, приводит к еще более страшным ошибкам.
Вот пример того, что я пытаюсь проникнуть куда-то:
public static explicit operator Vector4(Color color)
{
return new Vector4(color.R, color.G, color.B, color.A);
}
Как бы я стал крастьсяв приведенном выше коде?Если это невозможно, есть ли обходной путь?