public object GetOldest(Person people1,Person people2)
{ if (people1.Age>people2.Age)
{
return people1;
}
else if (people1.Age>=people2.Age)
{
return people1;
}
else if (people1.Age<people2.Age)
{
return people2;
}
else if (people1.Age<=people2.Age)
{
return people2;
}                          return null;
}>>>问题二,在上面的比较中,如果我想同时返还两个值,该怎么写?return a people[] inteadpublic people[] GetOldest(Person people1,Person people2)(and make changes to the code)
>>>>问题三,如果问题二解决,能同时返回两个值,那么接收这两个值的语句怎么写?people[] plist =  GetOldest(...);

解决方案 »

  1.   

    问题一:else if (people1.Age<=people2.Age)
    {
    return people2; }
    这里加个  return  XXX; // XXX为一个Person 实例问题二;似乎还没有这种功能,除非你把返回值设置为一个对象数组,然后把返回的两个实例放到一个数组中,然后返回数组,似乎只能这样了。问题三:接受一个数组
      

  2.   

    System.Collections.ArrayList people=new System.Collections.ArrayList();
    public ArrayList GetOldest(Person people1,Person people2)
    {
    ArrayList Persions=new ArrayList();
    if (people1.Age>people2.Age)
    {      
    Persions.Add(people1);

    }
    //这时候的情况只有 p1<=p2
    else if(people1.Age==people2.Age )
    {
    Persions.Add(people1);
    Persions.Add(People2);
    }
    else 
    {
    {
    Persions.Add(people2);
    }
    return Persions;
    }
    }
    System.Collections.ArrayList result;
    result=(System.Collections.ArrayList)GetOldest( p1,p2);
    foreach(Person p in result)
    {
    //;;
    }