C# 如何根据条件创建不同的类?
很高兴见到你 我试图按条件分配类,但Csharp不让我这么做 因为名字是重复的。但我想使用“name”作为实例的名称,以最小化代码 比如说。 #我正在使用手机,请理解错误C# 如何根据条件创建不同的类?,c#,C#,很高兴见到你 我试图按条件分配类,但Csharp不让我这么做 因为名字是重复的。但我想使用“name”作为实例的名称,以最小化代码 比如说。 #我正在使用手机,请理解错误 Random rand = new Randome(); switch (rand.Next(1,3)) { case 1 : ClassA name = new ClassA(); break; case 2 : ClassB name = new ClassB(); b
Random rand = new Randome();
switch (rand.Next(1,3))
{
case 1 :
ClassA name = new ClassA();
break;
case 2 :
ClassB name = new ClassB();
break;
case 3 :
ClassC name = new ClassC();
break;
}
我试了很多东西,但不知道怎么做。。你们能帮帮我吗 您可以创建接口(或抽象类)
并使用如下随机类:
static void Main()
{
var classInstance = GetClassInstance();
Console.WriteLine(classInstance.Id);
}
public static IClassAbc GetClassInstance()
{
Random rand = new Random();
switch (rand.Next(1, 4))
{
case 1:
return new ClassA();
case 2:
return new ClassB();
case 3:
return new ClassC();
}
return null;
}
但我认为,获得随机类是无用的。此代码在某些情况下可用于框架:
static void Main()
{
var classInstance = GetClassInstance("classB") as ClassB;
Console.WriteLine (classInstance.Id);
}
public static IClassAbc GetClassInstance(string className)
{
switch (className)
{
case "classA":
return new ClassA();
case "classB":
return new ClassB();
case "classC":
return new ClassC();
}
return null;
}
您是否需要在每个案例之外引用
名称
?如果没有,您可以简单地用{
和}
大括号围绕每个case块来创建一个新范围。如果是,则所有三个类都必须派生自公共基类或接口。
static void Main()
{
var classInstance = GetClassInstance("classB") as ClassB;
Console.WriteLine (classInstance.Id);
}
public static IClassAbc GetClassInstance(string className)
{
switch (className)
{
case "classA":
return new ClassA();
case "classB":
return new ClassB();
case "classC":
return new ClassC();
}
return null;
}