将项目作为接收参数的类型

时间:2017-03-24 11:46:52

标签: c# xamarin.android xamarin-studio

我有过滤通用列表的方法

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

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

2 个答案:

答案 0 :(得分:1)

如果您的选项数量有限,您可以执行以下操作:

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

但这可能表明设计不好,需要类继承和多态。

答案 1 :(得分:0)

抱歉,我错过了一个选项。因此,我的班级有通用参数,我只需设置

var item = (T)o;

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