Попытка вызвать метод getName() в моей программе для обратной записи в файл из формы Windows. Имя - это еще один объект, называемый общедоступным классом Name() со своими собственными наборами/получениями, которые я могу реализовать нормально, но я не могу понять, как установить мой getName(), чтобы иметь возможность обратного вызова получения из объекта Student.
public class Student
{
private Name n;
private Address a;
private PhoneNumber[] phones = new PhoneNumber[3];
private Course[] c = new Course[200];
public void setName(Name N)
{
n = N;
}
public string getName()
{
return n;
}
}
Можем ли мы увидеть ваш Name класс? Либо вам нужно вернуть Name вместо string, либо вызвать соответствующий геттер из класса Name, чтобы получить строковое представление имени.





Имя — это класс, а не строка.
Либо вы делаете
public string getName()
{
//Assuming name is a string property in your Name class
return n.Name;
}
Как сказано выше, это предполагает, что ваш класс Name составлен как
class Name
{
public string Name {get; set;}
}
или вы переопределяете метод .ToString() в классе Name, чтобы вернуть свойство имени.
Объясняется переопределение .ToString() в MSDN
Или измените getName на return Name, или измените его на автосвойство public Name name { get; set; }
Спасибо, Сид, ваша рекомендация изменить его на общедоступное имя getName() решила проблему. Я ценю помощь!.
@SeanBruce, если да, не забудьте отметить это как ответ. Спасибо ;) Кроме того, общественная или внутренняя работа, в зависимости от ваших потребностей.
n— этоName, поэтому, если вы хотите, чтобы ваш метод возвращал типName, вы должны определить его следующим образом:public Name getName()