1

私はタイトルが間違っているかもしれない..笑わからない..とにかく..

私は3つの異なるデータ型を持っています..

public class data1
{
    public Color color;
    public int len;
    public DrawingVisual dv;
    Other vars...
}
public class data2
{
    public Color color;
    public int len;
    public DrawingVisual dv;
    Other vars different from data1 vars...
}

等...

これらを渡す関数を作成して、関数内で必要な変数を取得するにはどうすればよいですか..例..

void Something(var data)
{
    switch (typeof(data))
    {
         case data1:

         break;
         case data1:

         break;
    }
}

これは明らかに機能しません..しかし、それは単なる例です..

どうすれば実際にこれを行うことができますか?

ありがとう

4

3 に答える 3

1

object代わりに使用できますvar

void Something(object data)
{
    if(typeof(data) == data1.GetType())
    {

    }
    else
    if(typeof(data) == data2.GetType())
    {

    } 
}

あなたのクラスには、継承を使用できる共通の属性があるようです。基本抽象クラスを作成し、残りを継承します。

public abstract class Data
{
    public Color color;
    public int len;
    public DrawingVisual dv;

    public abstract void Something();
}

public class Data1 : Data
{
      //Addition methods go here
}

public class Data2 : Data
{
      //Addition methods go here
}

追加のメモとして、プロパティやクラスなどの命名規則に従って使用することを前提としています。

于 2013-07-25T14:01:04.717 に答える