Как получить доступ к параметрам объекта через метод из другого класса (C #)

#c# #methods

#c# #методы

Вопрос:

Здравствуйте, мне нужна ваша помощь..

У меня есть 2 класса с именами Book и Title и конструктор с именем Book (строка A, строка B, строка C, строка D), и в основном классе программы я вызываю метод AddCopy(), который включен в класс Title, см. Код из основного класса ниже:

 Book book1 = new Book("A", "B", "C","D");
book1.AddCopy(Copy copy);
  

Теперь мой главный вопрос: как я могу получить доступ к параметрам A, B, C, D в методе AddCopy?

Ответ №1:

Параметры вызова конструктора, A, B, C и D, все ограничены областью действия конструктора — это означает, что они доступны только внутри конструктора.

Чтобы получить доступ к их значениям из метода AddCopy, вам нужно скопировать их в поля уровня класса в конструкторе.

Итак, ваш класс Book становится чем-то вроде:

 public class Book
{
    private string _a;
    private string _b;
    private string _c;
    private string _d;

    public Book(string A, string B, string C, string D)
    {
        _a = A;
        _b = B;
        _c = C;
        _d = D;
    }

    public void AddCopy(Copy copy)
    {
        // within this method you can access the private fields, but there is no
        // way to access the A, B, C and D parameters of the constructor.

        string someString = _a   _b   copy.SomeProperty;
    }
}
  

Комментарии:

1. Просто добавлено в код для этого. Обратите внимание, что вы не получаете доступ к самим параметрам, вы не влияете на значения вне класса, только на их копии класса. (вы можете влиять на значения извне, но обычно это плохая идея — или, по крайней мере, что-то, что следует тщательно продумать)

2. @Andrew Ну, тогда приведенный вами код неверен. Не могли бы вы, пожалуйста, отредактировать свой вопрос? Этот простой ответ заключается в том, что вы предоставляете эти поля как общедоступные свойства класса Book. Затем вам нужно сослаться на экземпляр класса Book из класса Title и получить значения из свойств.