我可以使用通用隐式或显式运算符吗?C#

2 .net c# generics

我如何更改以下语句,使其接受任何类型而不是 long?现在有一个问题,如果没有构造函数,我不希望它编译。因此,如果有一个字符串、长整型和双精度的构造函数,但没有布尔值,我如何让这一行适用于所有这些支持类型?

ATM 我只是复制粘贴它,但如果我有 20 种类型,我就不想这样做(尽管任务可能很琐碎)

public static explicit operator MyClass(long v) { return new MyClass(v); }
Run Code Online (Sandbox Code Playgroud)

Che*_*hen 5

现在我可以告诉你,你的问题的答案是“不,我们不能”,因为:

用户定义的转换必须与封闭类型相互转换。

这就是为什么我们不能在这里使用泛型类型。

public class Order
{
    public string Vender { get; set; }
    public decimal Amount { get; set; }
}

public class AnotherOrder
{
    public string Vender { get; set; }
    public decimal Amount { get; set; }
    public static explicit operator AnotherOrder(Order o)
    {
        //this method can be put in Order or AnotherOrder only
    }
}
Run Code Online (Sandbox Code Playgroud)