我正在尝试为我的测试程序创建一个代表新用户的对象。
我希望对象的名称是用户输入的电子邮件地址IE我希望能够输入John@gmail.com.Classmethod()但是,我不能将Email变量内部的值传递给新对象变量的名称。请参阅下面的代码
Console.WriteLine("Full Name:");
string name = Console.ReadLine();
Console.WriteLine("Email:");
string email = Console.ReadLine();
Console.WriteLine("Address:");
string address = Console.ReadLine();
Console.WriteLine("Password:");
string password = Console.ReadLine();
Client NEWCLIENT = new Client(name, email, address, password);
为了进一步详细说明,我想用变量Email的字符串来替换NEWCLIENT占位符。
谢谢
不,你不能那样做。最接近的解决方案是使用字典,将电子邮件作为键,如下所示:
var clients = new Dictionary<string, Client>();
// your code
clients.Add(email, newClient);
然后你可以用clients["John@gmail.com"].Classmethod();
调用你的方法。
我试图理解您的意思,但找不到明确的理由。
当你这样做
Client NEWCLIENT = new Client(name, email, address, password);
对象名称是NEWCLIENT(应该是NEWCLIENT), NEWCLIENT可以调用
NEWCLIENT.ClassMethod ();你想动态命名一个变量,据我所知这是不可能的,因为编译器必须知道所有的变量,以便将它们与内存区域相关联。