簡體   English   中英

一個方法創建一個對象,然后從另一個對象調用該方法

[英]a method creates an object and I call the method from an other object

如果一個方法創建了一個對象,而我又從另一個對象調用了該方法,那么最后一個對象是否可以訪問第一個對象的屬性和方法?

那里有些無關緊要的信息可能會使您感到困惑。

方法和對象(在這種情況下)彼此斷開。 因此問題就來了,您是否將創建的對象存儲在第二個對象可以訪問的作用域中?

在路由器中,在一種方法中,包含的文件中是控制器代碼。 在模型和視圖中,我需要訪問Controller的屬性和方法。 在Router中,通過另一種方法,我想將控制器對象返回到模型和視圖。 現在怎么辦??

如果我正確理解了這個問題,那么您會對MVC感到困惑。 路由器類是一個小巧的內部類,永遠不要永遠不要永遠不要絕對不要改變它。 那些“ 從不 ”甚至沒有被復制粘貼,它們是真正的鍵入。

其次,模型類甚至都不知道稱為控制器的任何東西。 控制器使用模型,而不是相反。 如果您的模型需要控制器提供的東西,請將其作為參數傳遞。 除此之外,還只是不好的設計。

同樣,可以從視圖調用控制器動作,但是強烈建議不要這樣做。 控制器是為視圖准備所有數據的控制器,因此視圖無需訪問控制器(對此存在一些例外,超出了本問題的范圍)。

我建議您閱讀有關MVCcake的典型請求)的一些知識 ,並且至少閱讀基礎博客教程

如果將它退回/存儲在某個地方,則可以訪問公共字段和方法。

編輯:鑒於標簽的更改,此答案不再相關。 我將其保留以保留評論...

原始答案:

像這樣?:

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

在這兩種情況下,請確保您可以訪問對象的屬性。 如果這不是您的意思,那么我不確定如何回答您的問題,您需要進行澄清。

僅當該方法保留對其創建的對象的引用時。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM