C# 在泛型对象上使用类的属性

C# 在泛型对象上使用类的属性,c#,C#,基本上,我想做的是: 我有一个叫做Animals的类,它读取一些动物,这些动物有一些与之相关的属性,比如年龄、类型、出生日期等。 我面临的问题是CompareTo()方法,它将泛型对象作为参数,检查它是否属于Animal类型,如果是,则将与此对象关联的名称与与与动物实例关联的名称实例进行比较 我试着用 this.Name.CompareTo(object.Name); 但很明显,它不适用于这种情况,因为对象中没有定义名称。有没有办法解决这个问题?能够比较对象内部的属性(知道它是类型为Anima

基本上,我想做的是: 我有一个叫做Animals的类,它读取一些动物,这些动物有一些与之相关的属性,比如年龄、类型、出生日期等。 我面临的问题是CompareTo()方法,它将泛型对象作为参数,检查它是否属于Animal类型,如果是,则将与此对象关联的名称与与与动物实例关联的名称实例进行比较

我试着用

this.Name.CompareTo(object.Name);
但很明显,它不适用于这种情况,因为对象中没有定义名称。有没有办法解决这个问题?能够比较对象内部的属性(知道它是类型为Animal)和Animal类实例中的属性吗?
提前感谢。

在比较名称之前,您需要将
对象
投射到
动物

public int CompareTo(object obj)
{
    if (obj == null)
    {
        return 1;
    }

    if (obj is Animal)
    {
        Animal other = (Animal)obj;
        return this.Name.CompareTo(other.Name);
    }

    return 1;  // or whatever behavior you want if obj is not an Animal
}

在比较名称之前,您需要将
对象
强制转换为
动物

public int CompareTo(object obj)
{
    if (obj == null)
    {
        return 1;
    }

    if (obj is Animal)
    {
        Animal other = (Animal)obj;
        return this.Name.CompareTo(other.Name);
    }

    return 1;  // or whatever behavior you want if obj is not an Animal
}

在比较名称之前,您需要将
对象
强制转换为
动物

public int CompareTo(object obj)
{
    if (obj == null)
    {
        return 1;
    }

    if (obj is Animal)
    {
        Animal other = (Animal)obj;
        return this.Name.CompareTo(other.Name);
    }

    return 1;  // or whatever behavior you want if obj is not an Animal
}

在比较名称之前,您需要将
对象
强制转换为
动物

public int CompareTo(object obj)
{
    if (obj == null)
    {
        return 1;
    }

    if (obj is Animal)
    {
        Animal other = (Animal)obj;
        return this.Name.CompareTo(other.Name);
    }

    return 1;  // or whatever behavior you want if obj is not an Animal
}

您可以使用
as
操作符将对象投射到
动物
。如果强制转换成功,则可以比较名称属性。如果强制转换失败,对象将为null(如果另一个对象为null,则通常返回1)


您可以使用
as
操作符将对象投射到
动物
。如果强制转换成功,则可以比较名称属性。如果强制转换失败,对象将为null(如果另一个对象为null,则通常返回1)


您可以使用
as
操作符将对象投射到
动物
。如果强制转换成功,则可以比较名称属性。如果强制转换失败,对象将为null(如果另一个对象为null,则通常返回1)


您可以使用
as
操作符将对象投射到
动物
。如果强制转换成功,则可以比较名称属性。如果强制转换失败,对象将为null(如果另一个对象为null,则通常返回1)


你能试着改写你的问题吗?我很难弄清楚你到底想做什么。而且,如果将来有人搜索这个问题,这对任何人都没有帮助!你能试着改写你的问题吗?我很难弄清楚你到底想做什么。而且,如果将来有人搜索这个问题,这对任何人都没有帮助!你能试着改写你的问题吗?我很难弄清楚你到底想做什么。而且,如果将来有人搜索这个问题,这对任何人都没有帮助!你能试着改写你的问题吗?我很难弄清楚你到底想做什么。而且,如果将来有人搜索这个问题,这对任何人都没有帮助!