簡體   English   中英

使用C#轉換為其他類型的自定義結構

[英]Custom struct with casting to another type in C#

我目前有一個結構,可以將其轉換為其他類型:

    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);

如何將浮點型轉換為int的方式對結構進行這種類型的行為的受限轉換?

只需將implicit explicit更改為explicit implicit即可:

public static explicit operator Vector2(Complex a)

implicit部分告訴編譯器無需代碼即可指定轉換即可完成此操作。 有關更多詳細信息,請參見Microsoft文檔中有關用戶定義的運算符的信息。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM