我对C#非常陌生,这是我第一次使用列表,所以我的问题可能很愚蠢... 我试图从文件中读取数据到一个由Tourist
对象组成的列表中。据我所知,在添加对象之前需要为tourists
列表分配一些内容,但我不确定如何做到这一点。
class Tourist
{
public string FirstName { get; set; }
public string LastName { get; set; }
public double Contributed { get; set; }
public Tourist(string firstName, string lastName, double money)
{
FirstName = firstName;
LastName = lastName;
Contributed = money * 0.25;
}
}
class Program
{
static void Main(string[] args)
{
List<Tourist> tourists = new List<Tourist>();
ReadData(out tourists);
}
static void ReadData(out List<Tourist> tourists)
{
const string Input = "..\\..\\Duomenys.txt";
string[] lines = File.ReadAllLines(Input);
foreach (string line in lines)
{
string[] values = line.Split(';');
string firstName = values[0];
string lastName = values[1];
double money = Double.Parse(values[2]);
tourists.Add(new Tourist(firstName, lastName, money));
}
}
}
out
参数。一个应该读取数据并返回它的方法不应该是void
,而应该返回List<Tourist>
。然而,out
参数必须在方法内部初始化,这就是编译器抱怨的原因。out
参数像是方法和调用方之间的契约,可以保证该参数在方法中被分配和初始化(尽管后者实际上可能会被赋值为null
)。 - Tim Schmelter