让我说我有一个自定义类型的数组,并且我输入了10个自定义结构类型的对象。
CustomType[] Record = new CustomType[10];
现在由于每个CustomType都有字段,我可以为数组中的CustomType的每个元素分配字段。 例如:
Record[0].name = "John";
Record[0].age = 34;
还有ToString()方法,它在int或string等常用类型中将类型的值转换为字符串。所以,如果我们有
someIntArray[0] = 32;
Console.WriteLine(someIntArray[0].ToString());
然后我们会得到输出" 32"在控制台上,而不是它的值类型int。
但是如果我们在上面的例子中使用与CustomType数组相同的方法,并写:
Console.WriteLine(Record[0].ToString());
然后我们不会获得对象包含的值(在其字段中),但是它的类型。 当然我可以写一下例如:
Console.WriteLine(Record[0].name + Record[0].age);
但是你可以看到如果结构有很多字段,这变得很老而且很乏味。特别是如果你不想只打印出一个struct对象的所有字段,而是打印出数组中的所有struct对象。
所以这是我的问题:.NET中是否有方法,或者其他一些简单的方法,以便我可以更简单,更快速地操作(例如打印)数组元素的所有字段,如结构?
答案 0 :(得分:1)
我认为人们认为结构不能包含方法,但它们绝对可以!只需创建一个ToString()
方法。
答案 1 :(得分:1)
你仍然可以覆盖结构中的ToString()!
struct Record
{
string name;
int age;
public override string ToString()
{
return String.Format("{0} {1}", record.name, record.age);
}
}
因此,您无需明确地调用它:
Console.WriteLine(record); // e.g., Joe 5