委托自定义数组排序 项目一共三个文件如下。

CSort.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks; namespace 委托自定义数组排序
{
class CSort<T>
{
public CSort()
{ }
/// <summary>
///
/// </summary>
/// <param name="arrObj"></param>
internal void Show(T[] arrObj)
{
foreach (T item in arrObj)
{
Console.Write(item.ToString() + " ");
}
}
/// <summary>
///
/// </summary>
/// <param name="arrObj"></param>
/// <param name="comp"></param>
internal void Sort(T[] arrObj, Comp<T> comp)
{
for (int i = ; i < arrObj.Length; i++)
{///arrObj.Length-i-1:至数组的最后一个元素
for (int j = ; j < arrObj.Length - i - ; j++)
{
if (comp(arrObj[j], arrObj[j + ]) > )
{
T obj = arrObj[j];
arrObj[j] = arrObj[j + ];
arrObj[j + ] = obj;
}
}
}
}
/// <summary>
///
/// </summary>
/// <param name="one"></param>
/// <param name="two"></param>
/// <returns></returns>
public int CompObj(T one, T two)
{
if (typeof(int) is T)
{
return int.Parse(one.ToString()) - int.Parse(two.ToString());
}
if (typeof(string) is T)
{
return (one.ToString()).Length - (two.ToString()).Length;
}
//if (typeof(Person) is T)
// return ((Person)one).Age - ((Person)two).Age;
return ;
}
//public int CompObj(string one, string two)
//{
// return one.Length - two.Length;
//} //public int CompObj(int one, int two)
//{
// return one - two;
//} }
//class Person
//{
// /// <summary>
// /// 年龄
// /// </summary>
// private int age;
// /// <summary>
// /// 年龄
// /// </summary>
// public int Age
// {
// get { return age; }
// set { age = value; }
// }
// /// <summary>
// /// 名字
// /// </summary>
// private string name;
// /// <summary>
// /// 名字
// /// </summary>
// public string Name
// {
// get { return name; }
// set { name = value; }
// }
// /// <summary>
// /// 性别
// /// </summary>
// private string sex;
// /// <summary>
// /// 性别
// /// </summary>
// public string Sex
// {
// get { return sex; }
// set { sex = value; }
// }
//}
}

Program.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks; namespace 委托自定义数组排序
{
class Program
{
static void Main(string[] args)
{
int[] arrInt = new int[] { , , , , , , , , };
string[] arrString = new string[] { "ab", "abc", "a", "abcd", "abc", "abcdef", "abcde" };
//Person[] arrPerson ={new Person(){Age=18,Name="ab",Sex=null},
// new Person(){Age=17,Name="a",Sex=null}}; CSort<string> s = new CSort<string>();
CSort<int> i = new CSort<int>();
//CSort<Person> p = new CSort<Person>();
s.Sort(arrString, s.CompObj);
i.Sort(arrInt, i.CompObj);
i.Show(arrInt);
//p.Sort(arrPerson, p.CompObj);
Console.WriteLine();
s.Show(arrString);
//Type type2= arrInt.GetType();
//do
//{
// type2 = type2.BaseType;
////Console.WriteLine(type2.ToString()); //} while (type2 != null);
////Console.WriteLine(arrInt.GetType().BaseType.BaseType.BaseType.ToString());
Console.ReadKey();
} }
}

CSortDelegate.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks; namespace 委托自定义数组排序
{
public delegate int Comp<T>(T one, T two);
}

运行没有错误!!!可是却也没有结果!!!

监视 T 却出现:

T “T”是一个“类型形参”,这在给定的上下文中无效

这是为什么???

泛型<T>,是你肿莫了,还是我错了...的更多相关文章

  1. 【wikioi】1230 元素查找(巨水题+set/hash)

    http://wikioi.com/problem/1230/ 这题我真的不好意思写题解了...set练手.. #include <cstdio> #include <set> ...

  2. MariaDB 表的基本操作(3)

    MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可MariaDB的目的是完全兼容MySQL,包括API和命令行,MySQL由于现在闭源了,而能轻松成为MySQ ...

  3. BZOJ 3514 Codechef MARCH14 GERALD07加强版 Link-Cut-Tree+划分树

    题目大意: 给定n个点m条边的无向图.求问当图中仅仅有[编号在[l,r]区间内]的边存在时图中的联通块个数 强制在线 注意联通块是指联通了就是同一块,不是Tarjan求的那种块 看到这题的那一刻我就想 ...

  4. (四)Lua脚本语言入门

    这篇文章就当成铺垫型的文章,写着写着发现有好多想写的,,关于C#与Java,当然作为铺垫肯定与Lua的下部分介绍有关..... 对于"泛型",先看C#中"泛型" ...

  5. (四)Lua脚本语言入门(数组遍历)

    这篇文章就当成铺垫型的文章,写着写着发现有好多想写的,,关于C#与Java,当然作为铺垫肯定与Lua的下部分介绍有关..... 对于"泛型",先看C#中"泛型" ...

  6. C# 递归构造树状数据结构(泛型),如何构造?如何查询?

    十年河东,十年河西,莫欺少年穷. 学无止境,精益求精 难得有清闲的一上午,索性写篇博客. 首先,我们需要准备一张表,如下范例: create table TreeTable ( TreeId ) no ...

  7. C# 泛型使用笔记

    泛型的基本概念我就不在这重复了,不了解的同学请自行百度. 我主要写下我在项目中要到的泛型实例.献丑了.....有什么不好或不对的地方大家尽可评论留言. 为什么要用泛型? 通过使用泛型,我们可以极大地提 ...

  8. Java高质量代码之 — 泛型与反射

    在Java5后推出了泛型,使我们在编译期间操作集合或类时更加的安全,更方便代码的阅读,而让身为编译性语言的Java提供动态性的反射技术,更是在框架开发中大行其道,从而让Java活起来,下面看一下在使用 ...

  9. 高阶函数---swift中的泛型介绍(一步步实现Map函数)

    说明 本文内容均出自函数式 Swift一书, 此处整理仅仅是为了自己日后方便查看, 需要深入研究的话, 可以点进去购买, 支持原作者 本书由 王巍–新浪微博大神翻译 OneV's Den 喵神博客 接 ...

随机推荐

  1. Java实现 蓝桥杯VIP 算法提高 密码锁

    算法提高 题目 2 密码锁 时间限制:1.0s 内存限制:1.0GB 问题描述 你获得了一个据说是古代玛雅人制作的箱子.你非常想打开箱子看看里面有什么东西,但是不幸的是,正如所有故事里一样,神秘的箱子 ...

  2. Java实现 蓝桥杯VIP 算法提高 选择排序

    算法提高 选择排序 时间限制:1.0s 内存限制:256.0MB  选择排序 问题描述 排序,顾名思义,是将若干个元素按其大小关系排出一个顺序.形式化描述如下:有n个元素a[1],a[2],-,a[ ...

  3. 弄懂Java的自增变量

    首先我们来看一段代码: public static void main(String[] args){ int i = 1; i = i++; //第一行 int j = i++; //第二行 int ...

  4. iOS-地图定位 && 解码与反解码

             前段时间,公司开发的App用到了地图和定位,所以记录一下,作为回顾总结.     对于地图和定位,苹果公司提供给了两个框架: MapKit:用于地图展示 Core Location ...

  5. Html/css 水平布局居中

    如何设置水平居中显示? 一般的方法是设置宽高,然后以margin去控制,比如:DIV居中的经典方法 本章介绍需要宽度自适应时如何水平居中,以及居中失效的几个点 水平自适应居中 比如设置一个列表水平居中 ...

  6. 机器学习——手把手教你用Python实现回归树模型

    本文始发于个人公众号:TechFlow,原创不易,求个关注 今天这篇是机器学习专题的第24篇文章,我们来聊聊回归树模型. 所谓的回归树模型其实就是用树形模型来解决回归问题,树模型当中最经典的自然还是决 ...

  7. (四)MySQL条件查询(通配符、模糊查询)、排序查询、分组查询(单行、分组函数)

    一.条件查询 1.含义:前面学的基础查询可以查询一个或多个字段,如果需要的数据仅仅是其中的某一行或多行就用到了条件查询. 2.语法:(序号表示语句执行顺序) SELECT 字段名 ③ FROM 表名 ...

  8. OKR-Periods of Words【KMP最小前后缀】

    OKR-Periods of Words 传送门:链接    来源:UPC 8180 题目描述 串是有限个小写字符的序列,特别的,一个空序列也可以是一个串.一个串P是串A的前缀,当且仅当存在串B,使得 ...

  9. 驱动开发 —— 从零开始(1) 配置vs20xx+wdkxx环境

    网上教程很多.如何去安装如何去配置 但是也有些坑感觉并不是那么的完善 wdk+vs下载链接:https://docs.microsoft.com/zh-cn/windows-hardware/driv ...

  10. maven项目快速搭建SSM框架(一)创建maven项目,SSM框架整合,Spring+Springmvc+Mybatis

    首先了解服务器开发的三层架构,分配相应的任务,这样就能明确目标,根据相应的需求去编写相应的操作. 服务器开发,大致分为三层,分别是: 表现层 业务层 持久层 我们用到的框架分别是Spring+Spri ...