当类型为"未知"时声明对象

Sop*_*hex 0 c# object

这是我的问题:

我有这个功能

public static void fillObject(object [] obs, DataTable dt)
{
    for (int j = 0; j < dt.Rows.Count; j++)
    {
        DataRow dr = dt.Rows[j];
        fillObject(obs[j], dr);
    }
}
Run Code Online (Sandbox Code Playgroud)

obs是一个类型的类的数组(比如说"羊"),当我调试时,我得到的obs[j]是一个null而不是对象类型,sheep所以我需要做类似的事情

obs[j] = new sheep();
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

Eri*_* J. 5

如果要强烈键入解决方案,可以使用泛型

public static void FillObject<T>(T [] obs, DataTable dt) where T: new
{
    //...

    obs[j] = new T();
}
Run Code Online (Sandbox Code Playgroud)

然后你会调用这个函数

FillObject<Sheep>(mySheep, dt);
Run Code Online (Sandbox Code Playgroud)