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

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实现 蓝桥杯 算法提高 合并石子

    算法提高 合并石子 时间限制:2.0s 内存限制:256.0MB 问题描述 在一条直线上有n堆石子,每堆有一定的数量,每次可以将两堆相邻的石子合并,合并后放在两堆的中间位置,合并的费用为两堆石子的总数 ...

  2. Java实现WUST 1002: 哈夫曼树

    [问题描述] 根据给定的若干权值可以构造出一颗哈夫曼树.构造的哈夫曼树可能不唯一,但是按照下面的选取原则所构造出来的哈夫曼树应该是唯一的. (1)每次选取优先级最低的两个结点,优先级最低的作为左子树, ...

  3. java算法集训代码填空题练习2

    1 连续数的公倍数 为什么1小时有60分钟,而不是100分钟呢?这是历史上的习惯导致. 但也并非纯粹的偶然:60是个优秀的数字,它的因子比较多. 事实上,它是1至6的每个数字的倍数.即1,2,3,4, ...

  4. Linux笔记(第一天)

    一.命令 lscpu                               -- 查看cpu free                                 -- 内存查看 -m 以M ...

  5. leetcode之两数相加解题思路

    问题描述 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标. 你可以假设每种输入只会对应一个答案.但是,数组中同一个元素不能使 ...

  6. https绕过证书认证请求 Get或Post请求(证书过期,忽略证书)

    报错信息 解决: postman方式 java请求 报错信息 javax.net.ssl.SSLHandshakeException: sun.security.validator.Validator ...

  7. vue + elementUI开发,使用el-tabs,导致浏览器卡死问题。

    第一次自己建项目,用过el-tabs,当时是正常使用的. 贴下版本信息: "element-ui": "^2.13.0", "js-md5" ...

  8. FastJson将Java对象转换成json

    确保环境依赖都配置好! 1.在pom.xml导入依赖 <dependency> <groupId>com.alibaba</groupId> <artifac ...

  9. Water Testing【皮克定理,多边形面积,线段上点的数目】

    Water Testing 传送门:链接  来源:UPC 9656 题目描述 You just bought a large piece of agricultural land, but you n ...

  10. 基于session对象实现简单的购物车应用

    大部分购物网站都会实现购物车的功能,基于session对象的购物车应用可以实现一个用户会话有效期内,用户所选多个商品的存储. 为了实现这样的功能需要编写三个JSP页面,分别是login.jsp.mai ...