我的班级ClassName
定义了一个运算符:
public static explicit operator ClassName(Guid value)
{
return new ClassName(value);
}
这允许以这种方式“投射”:
var guids = new[] { Guid.NewGuid, Guid.NewGuid() };
var classes = guids.Select(g => (ClassName)g).ToArray();
如果我有类似的方法
public static ClassName Convert(Guid value)
{
return new ClassName(value);
}
我可以使用方法组:
var guids = new[] { Guid.NewGuid, Guid.NewGuid() };
var classes = guids.Select(ClassName.Convert).ToArray();
有没有办法只为显式运算符传递方法组?
我在正确语法上的天真实验失败了:
guids.Select(ClassName) // no (obviously)
guids.Select(ClassName.ClassName) // no (obviously)
guids.Select((ClassName)) // no (obviously)
guids.Select(ClassName.op_explicit) // no (obviously)