我如何更改以下语句,使其接受任何类型而不是 long?现在有一个问题,如果没有构造函数,我不希望它编译。因此,如果有一个字符串、长整型和双精度的构造函数,但没有布尔值,我如何让这一行适用于所有这些支持类型?
ATM 我只是复制粘贴它,但如果我有 20 种类型,我就不想这样做(尽管任务可能很琐碎)
public static explicit operator MyClass(long v) { return new MyClass(v); }
Run Code Online (Sandbox Code Playgroud)
现在我可以告诉你,你的问题的答案是“不,我们不能”,因为:
用户定义的转换必须与封闭类型相互转换。
这就是为什么我们不能在这里使用泛型类型。
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)