也许这很愚蠢,但我正在尝试缩短方法StreamWriter.WriteLine
的调用,因为我必须在整个代码中多次调用它。因此,我不想调用myFile.WriteLine()
,而只想写myFile.WL()
。
这可能吗?
在寻找解决方案后,我写了这个:
private static void WL(this StreamWriter myFile, params string myString)
{
return (void)myFile.WriteLine(myString);
}
但我收到了错误
无法将'void'类型转换为'void'
有什么想法吗?
答案 0 :(得分:4)
不需要扩展方法,只是为了完整...
从您的方法中删除Failed to run spark-submit executable: java.io.IOException:
Cannot run program "spark-submit": error=2, No such file or directory
语句,因为它不必返回任何内容。
return
但是,重新考虑你要做的事情。缩短private static void WL(this StreamWriter myFile, params string myString)
{
myFile.WriteLine(myString);
}
到WriteLine
是没有意义的,它不会用于任何目的,它会使代码不那么可读,你也不能掩盖所有overloads。
答案 1 :(得分:0)
您的Extension method
应该只是
private static void WL(this StreamWriter myFile, params string myString)
{
myFile.WriteLine(myString);
}
<强>理由:强>
WriteLine
方法不返回任何内容,即void。它只引用Writes a string followed by a line terminator to the text string or stream
。所以你应该从方法中删除return关键字。阅读here。BTW,如果你想在你定义它的类之外使用它,扩展方法应该是公共的。