Well, you need to decide which is your primary comparison. Only use the secondary comparison if the first one gives equality. For example:
public int Compare(Person p1, Person p2)
{
int primary = p1.Name.CompareTo(p2.Name);
if (primary != 0)
{
return primary;
}
// Note reverse order of comparison to get descending
return p2.Age.CompareTo(p1.Age);
}
(This can be written more compactly in various ways, but I've kept it very explicit so you can understand the concepts.)
Note that in MiscUtil I have some building blocks so you can easily construct comparers using lambda expressions, compose comparers etc.