有没有办法为任何事物的数组实现通用的隐式或显式转换器,如下所示:
public static implicit operator T[](T objToConvert)
{
return new T[] { objToConvert };
}
Run Code Online (Sandbox Code Playgroud)
不,我能想到的最接近的是扩展方法:
public static T[] AsArray<T>(this T instance)
{
return new T[]{instance};
}
Run Code Online (Sandbox Code Playgroud)
用于:
var myArray = myInstnace.AsArray();
Run Code Online (Sandbox Code Playgroud)
请注意,您可以省略数组构造函数中的类型名称,这意味着语法相当干净,即使使用长类型名称:
ReallyLongAndAwkwardTypeName value;
MethodThatTakesArray(new[] {value});
Run Code Online (Sandbox Code Playgroud)