-1

ClassVersion1、ClassVersion2、ClassVariables のような 3 つのクラスがあります。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 条件 (同じ名前で異なるクラスの 2 つのオブジェクト) に呼び出す必要があります。オブジェクトを状態に作成し、状態外で使用したい。

これどうやってするの?

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 に答える