/************************************************/
/*★ generics を使った比較メソッド 前田 稔 ★*/
/************************************************/
using System;
class Print
{
public static int Main()
{
int n1 = Max<int>(5, 10); // int 版の Max を明示的に呼び出し
int n2 = Max(5, 10); // int 版の Max が自動的に生成される
Console.WriteLine("Max<int>(5, 10)={0} Max(5, 10)={1}",n1, n2);
double x = Max(5.0, 10.0); // double 版の Max が自動的に生成される
Console.WriteLine("Max(5.0, 10.0)={0}",x);
string s = Max("abc", "cat"); // string 版の Max (辞書式順序で比較)
Console.WriteLine("Max(abc, cat)={0}",s);
Console.ReadLine();
return 0;
}
public static T Max<T>(T a, T b)
where T : IComparable
{
return a.CompareTo(b) > 0 ? a : b;
}
}
|