我目前有一个结构,我可以将其转换为另一种类型,如下所示:
public static implicit operator Vector2(Complex a)
{
return new Vector2(a.Real,a.Imaginary);
}
目前,这是如何自动允许的:
Vector2 a = new Complex(b,c); //valid
但我希望它不会自动允许这样做。而是只允许:
Vector2 a = (Vector2) new Complex(b,c);
我怎样才能对我的结构进行这种行为的限制转换,就像 float 转换到整数的工作方式一样?
最佳答案
只需将 implicit
更改为 explicit
:
public static explicit operator Vector2(Complex a)
implicit
部分告诉编译器它可以在没有指定转换的代码的情况下完成。有关更多详细信息,请参阅 Microsoft documentation for user-defined operators。关于c# - 在 C# 中转换为另一种类型的自定义结构,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57831387/