将项目投射为接收参数的类型

Cast item to be type of received parametar

我有过滤通用列表的方法

public bool FilterRecords(object obj)
    {
        Type ss = obj.GetType();
        var item = obj as (obj.GetType());
        .
        .
        .
        return false;
    }

Object obj 可以是 Customer、Order、Artical 等。问题是 var item = obj as (obj.GetType()); 不起作用。我尝试了更多选项,但我 运行 没有想法。如何将 item 转换为对象类型?提前致谢。

抱歉,我错过了一个选项。因此我的 class 带有通用参数,我只是设置

var item = (T)o;

有效,不需要 Type ss = obj.GetType();.

如果您的选项数量有限,您可以这样做:

public bool FilterRecords(object obj)
{
    if(obj is Customer) 
    {
        var customer = (Customer)obj;
        //... 
    }
    else if(obj is Order)
    {
        var order = (Order)obj;
        //... 
    }
    //... 
} 

但这可能表明设计不当,需要 class 继承和多态性。