-1

我有 3 个类,例如 ClassVersion1、ClassVersion2 和 ClassVariables。ClassVariables 用于从 Form 中到达其他类的变量。

我认为是这些;

if(version == 1)
{
    ClassVersion1 clss = new ClassVersion1();
}
else
{
    ClassVersion2 clss = new ClassVersion2();
}
clss.vars.variable1 = 3;
clss.vars.variable2=5;
clss.DoSomething();

但是我必须将函数和变量调用到 if 条件中(两个具有相同名称的对象,不同的类)。我想将对象创建为条件并使用条件。

我怎样才能做到这一点?

4

1 回答 1

7

你可以使用一个接口:

public interface IVersionedClass
{
    int Variable1 { get; set; }
    string Variable2 { get; set; }
}


public class ClassVersion1 : IVersionedClass
{
    public int Variable1 { get; set; }
    public string Variable2 { get; set; }
}

public class ClassVersion2 : IVersionedClass
{
    public int Variable1 { get; set; }
    public string Variable2 { get; set; }
}

然后像这样使用它:

IVersionedClass myClass;
if(version == 1)
{
    myClass = new ClassVersion1();
}
else
{
    myClass = new ClassVersion2();
}
于 2014-12-17T11:16:04.750 回答