gpt4 book ai didi

c# - 在 C# 中强制转换为另一种类型的自定义结构

转载 作者:行者123 更新时间:2023-11-30 15:13:34 25 4
gpt4 key购买 nike

我目前有一个结构,我可以像这样转换为另一种类型:

    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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com