是否可以用C#中的参数名称创建对象?
在这种情况下,我需要以传递的参数的名称创建一个对象是否可以用C#中的参数名称创建对象?,c#,C#,在这种情况下,我需要以传递的参数的名称创建一个对象 public static void createobject() { createobjectInName("name"); createobjectInName("id"); } public static void createobjectInName(Object obj) { obj = new Object(); } 在这里,我想调用对象名和
public static void createobject()
{
createobjectInName("name");
createobjectInName("id");
}
public static void createobjectInName(Object obj)
{
obj = new Object();
}
在这里,我想调用对象名和id。。但它将创建对象obj。
任何帮助。。。
谢谢您可能正在寻找的是
ref
或out
参数:
public static void createobject()
{
createobjectInName(out name);
createobjectInName(out id);
}
public static void createobjectInName(out Object obj)
{
obj = new Object();
}
请注意,必须定义
name
和id
才能使其工作。您无法在运行时创建具有任意名称的变量,而且这将毫无意义,因为没有代码可以访问它(如果访问代码也使用动态名称,您需要一个字典来将字符串映射到对象)。对象没有名称,尽管它们可以通过变量和属性(确实有名称)来“命名”。通常,不希望通过字符串名称访问变量(或属性)。要通过给定的字符串值访问对象,字典通常是合适的。你能提供更多关于最终目标是什么的背景吗?你可能想了解一下。它有利于自动生成code@JensKloster这也是一个高级主题,包含一组非常具体的有用情况。。这在这里可能不合适。@user2246674 I desagree-这是(我知道)生成变量名的唯一方法,它就像OP建议的那样动态。这是一个可怕的想法,甚至尝试它-但脱离上下文,它可能值得一试。正确地说,一种不那么严格的编程语言是正确的选择