如何将Class作为方法的参数传递?

我有两个class:

Class Gold; Class Functions; 

Functions有一个方法ClassGet ,它有2个参数。 我想发送类Gold作为类Functions一个方法的参数。 这怎么可能?

例如:

 public void ClassGet(class MyClassName, string blabla) { MyClassName NewInstance = new MyClassName(); } 

注意:我想将MyClassName作为字符串参数发送到我的方法。

您尝试实现的function已经存在(有点不同)

查看Activator类: http : //msdn.microsoft.com/en-us/library/system.activator.aspx

例:

 object instance = Activator.Create(className); 

或者像这样:

 Type type = typeof(MyClass); MyClass instance = (MyClass)Activator.Create(type); 

或者在你的情况下:

 public void ClassGet(string MyClassName,string blabla) { object instance = Activator.Create(MyClassName); } // Call it like: Gold g = new Gold(); g.ClassGet("MyClass", "blabla"); 

您可以将其作为Type的参数发送,但是您需要使用reflection来创建它的实例。 您可以使用通用参数:

 public void ClassGet(string blabla) where MyClassName : new() { MyClassName NewInstance = new MyClassName(); } 

你在寻找类型参数吗?

例:

  public void ClassGet(string blabla) where T : new() { var myClass = new T(); //Do something with blablah } 
  public void ClassGet(string Class, List Methodlist) { Type ClassType; switch (Class) { case "Gold": ClassType = typeof(Gold); break;//Declare the type by Class name string case "Coin": ClassType = typeof(Coin); break; default: ClassType = null; break; } if (ClassType != null) { object Instance = Activator.CreateInstance(ClassType); //Create instance from the type } }