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 回答