using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleApplication35 { class NovaTrida:int,IComparable { public int CompareTo(object b) { if (this.a < ((NovaTrida)b).a) return -1; else return +1; } public int a; } class Program { static T MojeMinimum(T a, T b) where T: System.IComparable { if (a.CompareTo(b)<0) return a; else return b; } static void Vymen( ref T a, ref T b) { T pom = a; a = b; b = pom; } static void Main(string[] args) { NovaTrida na = new NovaTrida(); NovaTrida nb = new NovaTrida(); Console.WriteLine(MojeMinimum(na, nb)); int a = 7; int b = 15; Console.WriteLine(MojeMinimum(a, b)); string sa = "sedm"; string sb = "patnáct"; Console.WriteLine(MojeMinimum(sa, sb)); return; Console.WriteLine("a={0} b={1}",a,b); Vymen(ref a, ref b); Console.WriteLine("a={0} b={1}", a, b); Console.WriteLine("sa={0} sb={1}", sa, sb); Vymen(ref sa, ref sb); Console.WriteLine("sa={0} sb={1}", sa, sb); double da = 7.77; double db = 15.15; Console.WriteLine("da={0} db={1}", da, db); Vymen(ref da, ref db); Console.WriteLine("da={0} db={1}", da, db); } } }