StreamWriter构造函数中的参数无效?

Ger*_*ard 1 c# constructor streamwriter

在C#3.0中,框架与3.0(程序集mscorlib.dll,v2.0.50727) System.IO.StreamWriter具有以下构造函数:

public StreamWriter(Stream stream, Encoding encoding);
public StreamWriter(string path, bool append, Encoding encoding);
Run Code Online (Sandbox Code Playgroud)

所以代码

Encoding enc = System.Text.Encoding.GetEncoding("iso-8859-1");
writer = new StreamWriter(filename, enc);
writer = new StreamWriter(filename, false, enc);
Run Code Online (Sandbox Code Playgroud)

给出了编译错误"最好的重载方法匹配...有一些无效的参数"......"无法在第二行从'System.Text.Encoding'转换为'bool'".

对不起,不是问题,而是错误.

Alb*_*nbo 6

因为filename是一个string(显然)并且无法转换为Stream.编译器假定第二个重载是您尝试使用的重载.它可能假设"无法将字符串转换为流",但编译器不会按该顺序解析参数.