2013-04-29 64 views
-4

我有這種情況,在傳遞參數的名稱中創建一個對象。是否可以在C#中的參數名稱中創建一個對象?

public static void createobject() 
    { 
     createobjectInName("name"); 
     createobjectInName("id"); 
    } 

    public static void createobjectInName(Object obj) 
    { 
     obj = new Object(); 
    } 

這裏我想調用對象名稱和ID ..但它會創建對象obj。 任何幫助...... 感謝

+2

對象雖然可以通過變量和屬性(具有名稱)進行「命名」,但沒有名稱。一般來說,希望通過字符串名稱訪問變量(或屬性)是不可取的。要通過給定的字符串值訪問對象,Dictionary通常是合適的。你能提供更多關於*最終目標*的內容嗎? – user2246674 2013-04-29 06:56:33

+0

您可能想查看[T4模板](http://msdn.microsoft.com/en-us/library/vstudio/bb126445.aspx)。它對自動生成代碼有好處 – 2013-04-29 06:57:42

+0

@JensKloster這也是一個非常具體的有用的情況下的高級主題..這可能是不適合的地方。 – user2246674 2013-04-29 07:00:34

回答

2

你可能要找的是一個refout PARAM:

public static void createobject() 
{ 
    createobjectInName(out name); 
    createobjectInName(out id); 
} 

public static void createobjectInName(out Object obj) 
{ 
    obj = new Object(); 
} 

注意nameid必須爲此工作進行定義。您不能在運行時創建具有任意名稱的變量,因爲沒有代碼可以訪問它(如果訪問代碼也使用動態名稱,而希望將字符串映射到對象的字典),它將毫無意義。

相關問題