2013-04-29 62 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必须为此工作进行定义。您不能在运行时创建具有任意名称的变量,因为没有代码可以访问它(如果访问代码也使用动态名称,而希望将字符串映射到对象的字典),它将毫无意义。

相关问题