将方法(获取string []方法)传递给WriteAllLines方法

时间:2014-08-09 23:50:08

标签: c# arrays .net

我已经对此做了一点努力而且我很难过。这是WriteAllLines

的语法
File.WriteAllLines(@"C:\system\path\file.txt", array[]);

如果数组在此类中,这对我有用。我在另一个类中有一个数组,我也有一个getter方法。当我尝试这个时:

File.WriteAllLines(@"C:\temp\selectedDays.txt", OtherClass.GetOrderDetailsArray());

但是我收到了错误。如何从另一个类传递数组?我可以使用这样的方法吗? BTW - 其他类中的方法如下所示:

public Array GetOrderDetailsArray()
{
    return orderDetailsArray;
}

1 个答案:

答案 0 :(得分:1)

File.WriteAllLines有四种可能的重载:

WriteAllLines(String, IEnumerable<String>)
WriteAllLines(String, String[])
WriteAllLines(String, IEnumerable<String>, Encoding)
WriteAllLines(String, String[], Encoding)

在所有四种情况下,您要写入文件的内容必须是数组或String值的序列。

您正在尝试传入非string[]IEnumerable<string>的对象;通过使用Array作为返回类型,编译器不知道数组中的数据类型是什么类型。

一般来说,你很少想要Array作为一种类型,因为它的类型不安全。你的方法应该是这样的:

public string[] GetOrderDetailsArray()
{
    return orderDetailsArray;
}

如果orderDetailsArray不是string[],您应该在退回之前将其复制到其中。