метод создает объект, и я вызываю метод из другого объекта - PullRequest
0 голосов
/ 12 мая 2009

Если метод создает объект и я вызываю метод из другого объекта, будет ли последний объект иметь доступ к свойствам и методам первого объекта?

Ответы [ 5 ]

1 голос
/ 13 мая 2009

В роутере, в методе, во включенном Файл - это код контроллера. в модель и в представлении, мне нужен доступ к свойствам контроллера и методы. В роутере, в другом метод, я хочу вернуть контроллер объект к модели и представлению. Какие Теперь ??

Если я правильно понимаю вопрос, вы немного озадачены MVC. Класс Router является внутренним классом тортов и никогда не должен никогда никогда не изменяться. И те " никогда " даже не копируются, они действительно напечатаны.

Во-вторых, классы моделей даже не знают ничего, называемого контроллером. Контроллер использует модели, а не наоборот. Если вашей модели нужно что-то из контроллера, передайте это как параметр. Все, что за этим, просто плохой дизайн.

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

Я рекомендую вам прочитать о MVC , типичный запрос торта и, по крайней мере, пройти базовый урок по .

1 голос
/ 12 мая 2009

Там есть какая-то посторонняя информация, которая может сбить вас с толку.

Метод и объект (в данном случае) отсоединены друг от друга. Таким образом, возникает вопрос, храните ли вы созданный объект в области, к которой у второго объекта есть доступ?

0 голосов
/ 12 мая 2009

Только если метод сохраняет ссылку на объект, который он создает.

0 голосов
/ 12 мая 2009

Редактировать: В свете изменения тегов этот ответ больше не актуален. Я оставил это, чтобы сохранить комментарии ...

Оригинальный ответ:

Как это?:

public MyObject CreateObject()
{
   return new MyObject() { FirstProperty = "Hello World" };
}

public Main()
{
    MyObject n = CreateObject();
    Console.WriteLine(n.FirstProperty);
}

Или это?:

class Program
{
    MyObject _myObject;

    public void CreateObject()
    {
        _myObject = new MyObject() { FirstProperty = "Hello World" };
    }

    public Main()
    {
        Console.WriteLine(_myObject.FirstProperty);
    }
}

В любом из этих двух случаев обязательно получите доступ к свойствам вашего объекта. Если это не то, что вы имели в виду, я не уверен, как именно ответить на ваш вопрос, и вам нужно уточнить.

0 голосов
/ 12 мая 2009

Если оно где-то возвращено / сохранено, будут доступны открытые поля и методы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...