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

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 基础练习 Huffuman树

    基础练习 Huffuman树 问题描述 Huffman树在编码中有着广泛的应用.在这里,我们只关心Huffman树的构造过程. 给出一列数{pi}={p0, p1, -, pn-1},用这列数构造Hu ...

  2. Java实现 LeetCode 51 N皇后

    51. N皇后 n 皇后问题研究的是如何将 n 个皇后放置在 n×n 的棋盘上,并且使皇后彼此之间不能相互攻击. 上图为 8 皇后问题的一种解法. 给定一个整数 n,返回所有不同的 n 皇后问题的解决 ...

  3. Java实现 LeetCode 43 字符串相乘

    43. 字符串相乘 给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形式. 示例 1: 输入: num1 = "2& ...

  4. java中Timer类的详细介绍(详解)

    一.概念 定时计划任务功能在Java中主要使用的就是Timer对象,它在内部使用多线程的方式进行处理,所以它和多线程技术还是有非常大的关联的.在JDK中Timer类主要负责计划任务的功能,也就是在指定 ...

  5. Java实现 洛谷 P1159 排行榜

    输入输出样例 输入 #1 5 HIGHHOPES UP LOWFEELINGS UP UPANDDOWN DOWN IAMSTILLSTANDING DOWN FOOLINGAROUND DOWN 输 ...

  6. Java实现第十届蓝桥杯矩形切割

    试题 B: 矩形切割 本题总分:5 分 [问题描述] 小明有一些矩形的材料,他要从这些矩形材料中切割出一些正方形. 当他面对一块矩形材料时,他总是从中间切割一刀,切出一块最大的正方 形,剩下一块矩形, ...

  7. java关键字volatile用法详解

    volatile关键字想必大家都不陌生,在java 5之前有着挺大的争议,在java 5之后才逐渐被大家接受,同时作为java的关键字之一,其作用自然是不可小觑的,要知道它是java.util.con ...

  8. 曹工说JDK源码(3)--ConcurrentHashMap,Hash算法优化、位运算揭秘

    hashcode,有点讲究 什么是好的hashcode,一般来说,一个hashcode,一般用int来表示,32位. 下面两个hashcode,大家觉得怎么样? 0111 1111 1111 1111 ...

  9. multimap遍历与查找

    std::multimap<int, std::string> m; m.insert(std::make_pair(0, "w0")); m.insert(std:: ...

  10. Controller是什么?

    控制器Controller 控制器复杂提供访问应用程序的行为,通常通过接口定义或注解定义两种方法实现. 控制器负责解析用户的请求并将其转换为一个模型. 在Spring MVC中一个控制器类可以包含多个 ...