public int CompareTo(object obj) { OV ov2 = (OV)obj; int t1 = (int)((object[])ob)[0]; int t2 = (int)((object[])ov2.ob)[0]; int cmp1 = t1.CompareTo(t2); if (cmp1 != 0) { return(cmp1); } if (t1 == 1) { var v1 = (int)((object[])ob)[1]; var v2 = (int)((object[])(ov2.ob))[1]; return(v1.CompareTo(v2)); } else if (t1 == 2) { return(((string)((object[])ob)[1]).CompareTo((string)((object[])ov2.ob)[1])); } else { throw new Exception("Err: 2988743"); } }
// В этом представлении сравнение идет по приоритету o, p, s public int CompareTo(object obj) { ops tr2 = (ops)obj; int s2 = tr2.s, p2 = tr2.p; OV o2 = tr2.o; int cmp1 = o.CompareTo(o2); if (cmp1 != 0) { return(cmp1); } int cmp2 = p.CompareTo(p2); if (cmp2 != 0) { return(cmp2); } return(s.CompareTo(s2)); }
public ops(object ob) { object[] tri = (object[])ob; s = (int)tri[0]; p = (int)tri[1]; o = new OV(tri[2]); }