因此,我一直在研究这种感觉,感觉永远是什么,无法弄清楚我做错了什么。这里是我的代码的摘录,我希望字符串 CashierLOgInNName' s 值成为新的Cashier对象名称:
public class Cashiers
{
public int CashierID;
public int Password;
public string FirstName;
public string LastName;
public void SetCashiers(int CashierID, int Password,string FirstName, string LastName )
{
this.CashierID = CashierID;
this.Password = Password;
this.FirstName=FirstName;
this.LastName = LastName;
}
Console.WriteLine("enter New Log in name");
string CashierLOgInNName= Console.ReadLine();
Console.WriteLine("enter First Name");
string CashierFirstName = Console.ReadLine();
Console.WriteLine("enter Last name");
string CashierLastName = Console.ReadLine();
Console.WriteLine("enter Cashier ID");
string f = Console.ReadLine();
int NewCashierID = Int32.Parse(f);
Console.WriteLine("enter Cashier Password");
string g = Console.ReadLine();
int NewCashierPWD = Int32.Parse(g);
CashierLOgInNName = (Cashiers)Activator.CreateInstance(null, CashierLOgInNName).Unwrap();
答案 0 :(得分:0)
activator.createinstance和objecthandle.unwrap的MSDN文档可能会有所帮助。
答案 1 :(得分:0)
首先进行一点修正。它将确保创建收银员的对象 cashierObj 。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Activators
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("enter New Log in name");
string CashierLOgInNName = Console.ReadLine();
Console.WriteLine("enter First Name");
string CashierFirstName = Console.ReadLine();
Console.WriteLine("enter Last name");
string CashierLastName = Console.ReadLine();
Console.WriteLine("enter Cashier ID");
string f = Console.ReadLine();
int NewCashierID = Int32.Parse(f);
Console.WriteLine("enter Cashier Password");
string g = Console.ReadLine();
Cashiers cashierObj = (Cashiers)Activator.CreateInstance(typeof(Cashiers), f, g, CashierFirstName, CashierLastName);
}
}
public class Cashiers
{
public string CashierID;
public string Password;
public string FirstName;
public string LastName;
public Cashiers(string CashierID, string Password, string FirstName, string LastName)
{
this.CashierID = CashierID;
this.Password = Password;
this.FirstName = FirstName;
this.LastName = LastName;
}
}
}
将下一部分CashierLOgInNName的值作为新的Cashier对象名称。这似乎很棘手,没用。我建议有更好的选择:
loginName
。Dictionary<string, Cashier>
LoginName作为键,将Cashier Object作为值。但是如果你坚持使用 CSharpCodeProvider Class ,还是允许从源代码动态创建一个程序集。 在源代码中,您可以将对象名称写为loginName,然后动态引用该程序集。
然而,它没有任何意义,因为您无法使用该对象,因为它的名称仅在运行时为您所知。我希望这有助于你的好奇心。
“在破坏的时候,创造一些东西。” - Maxine Hong Kingston