Getter не работает над возвратом объекта в строку

Попытка вызвать метод 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;
    }
}
n — это Name, поэтому, если вы хотите, чтобы ваш метод возвращал тип Name, вы должны определить его следующим образом: public Name getName()
Cid 01.05.2019 22:26

Можем ли мы увидеть ваш Name класс? Либо вам нужно вернуть Name вместо string, либо вызвать соответствующий геттер из класса Name, чтобы получить строковое представление имени.

Marc Sances 01.05.2019 22:27
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
2
94
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Имя — это класс, а не строка.

Либо вы делаете

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; }

Blorgbeard 01.05.2019 22:37

Спасибо, Сид, ваша рекомендация изменить его на общедоступное имя getName() решила проблему. Я ценю помощь!.

Sean Bruce 01.05.2019 22:41

@SeanBruce, если да, не забудьте отметить это как ответ. Спасибо ;) Кроме того, общественная или внутренняя работа, в зависимости от ваших потребностей.

Liquid Core 01.05.2019 22:42

Другие вопросы по теме