C# 2.0 新特性(泛型、可空类型)应用一例
1
using System;
2
3
class Test
4
{
5
static void Main()
6
{
7
Console.WriteLine(Max(1)); // 输出: 1
8
Console.WriteLine(Max(.3, -.5)); // 输出: 0.3
9
Console.WriteLine(Max(0M, -3M, 3.14M)); // 输出: 3.14
10
Console.WriteLine(Max(9f, -1f, 3.14f, -2.718f)); // 输出: 9
11
Console.WriteLine(Max(0u, 23u, 3114u, 120718u, 5678u)); // 输出: 120718
12
}
13
14
static T? Max<T>(params T[] x)
15
where T: struct, IComparable
16
{
17
if (x.Length == 0) return null;
18
T a = x[0];
19
foreach (T i in x)
20
if (a.CompareTo(i) < 0) a = i;
21
return a;
22
}
23
}
24
using System;2

3
class Test4
{5
static void Main()6
{7
Console.WriteLine(Max(1)); // 输出: 18
Console.WriteLine(Max(.3, -.5)); // 输出: 0.39
Console.WriteLine(Max(0M, -3M, 3.14M)); // 输出: 3.1410
Console.WriteLine(Max(9f, -1f, 3.14f, -2.718f)); // 输出: 911
Console.WriteLine(Max(0u, 23u, 3114u, 120718u, 5678u)); // 输出: 12071812
}13

14
static T? Max<T>(params T[] x)15
where T: struct, IComparable16
{17
if (x.Length == 0) return null;18
T a = x[0];19
foreach (T i in x)20
if (a.CompareTo(i) < 0) a = i;21
return a;22
}23
}24



浙公网安备 33010602011771号