日期:2014-05-17  浏览次数:20792 次

新手问下问题。百度限字数不好搜
这个学期学完C 想在寒假提前预习下 下个学期的内容 C#  看的是我们的教材 在百度搜到答案就过来问下 希望大神门别嫌我小白 - =。
namespace 泛型习题
{
    public delegate int print( int i,int j);
    public class A
    {
        public T Max<T>( T num1,  T num2) 
        {
            return num1 > num2 ? num1 : num2;
        }
    }
    class Program
    {
        static void Main(string[] args)
        {
            A a = new A();
            print p1 = new print(a.Max<int>);
            Console.ReadKey();
        }
    }
}
错误提示:运算符">"无法应用于"T"和"T"类型的操作数。
要怎么改?由于时间问题 我先睡觉了 明一早来看回复 希望知道的大神说下。。。。

------解决方案--------------------
本帖最后由 caozhy 于 2013-01-31 23:15:28 编辑
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace 泛型习题
{
    public delegate int print(int i, int j);
    public class A
    {
        public T Max<T>(T num1, T num2) where T : IComparable
        {
            return num1.CompareTo(num2) > 0 ? num1 : num2;
        }
    }
    class Program
    {
        static void Main(string[] args)
        {
            A a = new A();
            print p1 = new print(a.Max<int>);
            Console.WriteLine(p1(2, 3));
            Console.WriteLine(p1(4, 5));
            Console.WriteLine(p1(0, 0));
            Console.ReadKey();
        }
    }
}


------解决方案--------------------
推荐图书:C#快捷教程(apress出版社的)、深入理解C#。