0

再生:

スニペット 1:

class A{
   A(int i){}
   A(string s){}
   A(Form b){}
   A(Stream b){}
   //...more constructors but no one accepts object type
}

スニペット 2:

A assign(object obj)
{
    dynamic d=obj;
    //do something with d or obj?
    A a=new A(d);
    return a;
}

ラインを機能させるにはA a=new A(d);

編集:

A a=new A(d);動的型メカニズムなしでラインを動作させる方法は?

4

1 に答える 1

0

A(オブジェクト obj) を追加{}

A のコンストラクタに対しては、GetType() を使用して識別します。

        public A(object obj)
        {
            if(obj is int)
                //Do something with the int.
            if(obj is string)
                //Do something with the string.
            if(obj is Form)
                //Do something with the Form.

            //etc...        
        }
于 2012-05-09T12:55:24.600 に答える