#c#
#c#
Вопрос:
И еще нужно выяснить проблему контекста с c #, поэтому я создал класс с перегруженным методом, и теперь я хочу записать все методы. Не уверен, имеет ли это смысл, поэтому я здесь.
Я хочу, чтобы строка записи распечатала новый тест.
// this is the class with the method overload
public Test(string make, string model, int year, string colour)
{
Make = make;
Model = model;
Year = year;
Colour = colour;
}
// this is what I called
Test myTest = new Test("chev", "ava", 2002, "blue");
Console.WriteLine(myTest);
Комментарии:
1. «это класс с перегрузкой метода» — это просто конструктор — интересная часть
ToString()
— это реализация, которая не показана.2. попытался выяснить Tostring, но безуспешно.
Ответ №1:
Вы должны переопределить ToString()
в своем классе, чтобы вернуть правильно отформатированную строку. Реализация по умолчанию ToString()
просто вернет имя класса.
http://msdn.microsoft.com/en-us/library/ms173154 (v= против 80).aspx
Поместите это в свой класс
public override string ToString()
{
return string.Format("{0} {1} {2} {3}",Make,Model,Year,Colour);
}
Комментарии:
1. Это сработало, спасибо. Существует так много способов сделать это, что это приводит меня в замешательство в режиме головного света.
Ответ №2:
Прежде всего, у вас переопределен конструктор, а не метод класса. Во-вторых, если вы хотите напечатать все значения членов класса (переданные в конструктор), вы должны написать свой собственный переопределенный метод toString . Вы можете отформатировать вывод так, как хотите отобразить:
public override string ToString()
{
var output = string.Format("The Car Model is {0} {1} which is made in year {2}, color {3}",Model,Make,Year,Colour);
return output;
}
Комментарии:
1. Присвоение переменной форматированного значения ничего не дает — вы должны вернуть форматированное значение. Например.
return string.Format(
…2. извините, что я виноват! Отредактировал ответ.