C#泛型比较大小

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace 泛型比较大小
{
    class Program
    {
        //Compare<T>是泛型类,T为类型参数
        public class Compare<T> where T : IComparable
        {
            //使用泛型实现的比较方法
            public static T compareGeneric(T t1, T t2)
            {
                if (t1.CompareTo(t2) > 0)
                {
                    return t1;
                }
                else
                {
                    return t2;
                }
            }
        }
        static void Main(string[] args)
        {
            //调用泛型方法
            Console.WriteLine(Compare<int>.compareGeneric(1, 2));
            Console.WriteLine(Compare<string>.compareGeneric("aa", "a"));
            Console.ReadKey();
        }
    }
}
时间: 2024-10-20 08:35:43

C#泛型比较大小的相关文章

java泛型的理解

最近在看视频,看到比较经典的比大小问题.输入两个数,返回大的数,类型可以为int,long,float等. 通常的教程中用这个例子引入了构造函数以及重载的概念,在学习完泛型后,我想到能不能写一个泛型的方法,用以实现比较. 为了完成这个任务,我们首先需要了解一下泛型. 什么的泛型 泛型是java语言系统的一种扩展,支持创建可以按照类型进行参数化的类. 泛型的好处 泛型的好处也是显而易见的, 首先可以扩充代码的通用性,通过泛型可以使方法支持更多的类型. 泛型有助于增强类型安全,编译器可以对类型进行比

Java—泛型

泛型是JDK 5 中引入的一个新特性,泛型提供了编译时类型安全检测机制,该机制允许程序员在编译时检测到非法的类型.泛型本质是参数化类型,也就是所操作的数据类型指定为一个参数. 假定我们有这样一个需求:写一个排序方法,能够对整形数组.字符串数组甚至其他任何类型的数组进行排序,该如何实现? 答案是可以使用 Java 泛型. 使用 Java 泛型的概念,我们可以写一个泛型方法来对一个对象数组排序.然后,调用该泛型方法来对整型数组.浮点数数组.字符串数组等进行排序. 1 泛型方法 规则: 所有泛型方法声

Java 高级开发必修知识---反射

文章开始之前 提一下: java反射操作其实就是主要围绕Class,Field,Methon等几个类来操作其中的方法 Class类的使用 1) 在面向对象的世界里,万事万物皆对象 A. Java语言中,普通数据类型,静态成员不是对象,其他皆对象 B. 每一个类也是对象 C. 类是java.lang.Class类的实例对象 There is a class named Class 对象的表示: 普通类对象表示: Foo foo = new Foo(); Class类实例对象表示: //Foo也是一

CSharp任何可比较的数据类型(大小比较泛型实现方法)封装

1 /// <summary> 2 /// 判定A大于B(A.CompareTo(B)<0) 3 /// </summary> 4 /// <typeparam name="T">实现了 IComparable 接口的任意对象 </typeparam> 5 /// <param name="a">比较对象A</param> 6 /// <param name="b"

深入理解Java之泛型

1. Why ——引入泛型机制的原因 假如我们想要实现一个String数组,并且要求它可以动态改变大小,这时我们都会想到用ArrayList来聚合String对象.然而,过了一阵,我们想要实现一个大小可以改变的Date对象数组,这时我们当然希望能够重用之前写过的那个针对String对象的ArrayList实现. 在Java 5之前,ArrayList的实现大致如下: 1 public class ArrayList { 2 public Object get(int i) { ... } 3 p

Java基础之Comparable接口, Collections类,Iterator接口,泛型(Generic)

一.Comparable接口, Collections类 List的常用算法: sort(List); 排序,如果需要对自定义的类进行排序, 那就必须要让其实现Comparable接口, 实现比较两个类大小的方法 shuffle(List); 随机排列 void reverse(List); 逆序排列(Linked效率较高) copy(); 复制集合, 前提是size()相同(长度, 和容量的区别) fill(List, Object);使用某个对象填充整个List binarySearch()

Java泛型的应用——T extends Comparable&lt;? super T&gt;

在观察Java源码的时候,发现了这么一个写法T extends Comparable<? super T>.不禁纳闷为什么要这么写呢?有什么好处吗,extends和super在这里的作用着实让人有点不清楚. 接下来,我将结合代码跟大家分享一下我关于这里泛型应用的看法. 1.  <T extends Comparable<? super T>>代表什么意思 大家可以明白的是这里应用到了Java的泛型,那么首先向大家说明一下这里extends的作用 extends后面跟的类

C# 之泛型详解(转)

原文:http://www.blogjava.net/Jack2007/archive/2008/05/05/198566.html 什么是泛型 我们在编写程序时,经常遇到两个模块的功能非常相似,只是一个是处理int数据,另一个是处理string数据,或者其他自定义的数据类型,但我们没有办 法,只能分别写多个方法处理每个数据类型,因为方法的参数类型不同.有没有一种办法,在方法中传入通用的数据类型,这样不就可以合并代码了吗?泛型的出现 就是专门解决这个问题的.读完本篇文章,你会对泛型有更深的了解.

C++中泛型使用导致的膨胀问题如何解决?

本文和大家分享的主要是c++开发中,泛型使用导致的膨胀问题的解决,希望对大家有所帮助. 如下定义两个list,元素类型不同: list<int> l1;listl2; 如果是用C语来做应该怎么办?它会对应list写一套代码,再对list写一套.每套都有相同的成员函数,只是变量类型各自不同罢了. 下面是list的C语言实现方式: //! code-1struct list_int_item { int value; struct list_int_item *next; }; struct li