1

我的班级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)
4

0 回答 0