我们可以使用对象类传递泛型对象

时间:2015-06-08 10:54:57

标签: .net object c#-4.0

public class Sample1
{
    public void setdata(Object obj)
    {
    //...Do the logic based on object type
    }
}

我希望这种方法(setdata)可以重复使用.i.e。我想传递不同类型/类的对象

public class Sample2 : Sample1
{
    public void dosomething()
    {
    Sample1 a = new Sample1();
    Sample2 b= new Sample2();
    a.setdata(b);
}
}

。这对Object类来说很简单,或者必须使用泛型//来完成它。如果有,怎么样?请帮忙。谢谢!

1 个答案:

答案 0 :(得分:0)

是的,你可以这样做:

public static class ObjectExtensions
{
    public static void SetData(this object that, object other)
    {
        // now here it gets tricky and probably really bad OOD
    }
}

这将导致从对象派生的每个对象和类(涵盖所有引用类型)来公开名为SetData的公共方法。

string s = new string();
Window w = new Window();

s.SetData(w);

然而,无论你在这种方法中做什么,都可能是极其糟糕的软件设计,应该根据你真正想做的事情来解决。