如何在运行时设置泛型方法的类型

本文关键字:泛型方法 类型 设置 运行时 | 更新日期: 2023-09-27 18:30:37

这样的事情可能吗:

int testvar = 0;
var query = PrimaryDataSource.AsEnumerable().Where(r => 
                r.Field<testvar.GetType()>("col") == testvar);

但我不想要这个:

int testvar = 0;
if (testvar is int)
{
    var query = PrimaryDataSource.AsEnumerable().Where(r => 
                    r.Field<int>("col") == testvar);
}

如何在运行时设置泛型方法的类型

只是不要使用 Field 来获取值; 将其作为对象获取:

var query = PrimaryDataSource.AsEnumerable().Where(r => 
    object.Equals(r["col"], testvar));

使用泛型的全部意义在于,当您知道静态涉及的类型时,要具有静态类型。 既然你不这样做,那么使用它没有任何好处。