• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >ASP.NET > .NET开发基础:从简单的例子理解泛型 分享

.NET开发基础:从简单的例子理解泛型 分享

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-11

通过本文主要向大家介绍了.net 泛型,vb.net 泛型,.net支持泛型类吗,.net支持泛型吗,c#泛型例子等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

从简单的例子理解泛型
话说有家影视公司选拔偶像派男主角,导演说了,男演员,身高是王道。于是有下面代码:
 

    public Boy(string name, int height) {
        this.mName = name;
        this.mHeight = height;
    }
}

 
//演员选拔类
public class Compare
{
    //导演导超女出生,喜欢一对一PK
    public Boy WhoIsBetter(Boy boy1, Boy boy2)
    {
        if (boy1.Height > boy2.Height)
        {
            return boy1;
        }
        else
        {
            return boy2;
        }
    }
}

 
//测试
static void Main(string[] args)
{
    Boy boy1 = new Boy("潘长江", 165);
    Boy boy2 = new Boy("刘德华", 175);

    Console.WriteLine(new Compare().WhoIsBetter(boy1, boy2).Name);
    Console.ReadLine();
}
 </div>
代码很简单,Boy为男演员实体类,包含姓名和身高两个字段属性;Compare类中的WhoIsBetter为选拔逻辑方法,负责选出两个男演员中较高的那个;测试结果:刘德华完胜。

任何行业都是一样,需求变更无处不在。第二天,需要选女主角,导演说了,女演员,苗条是王道。于是代码变更,添加了女演员实体类,添加了女演员的选拔方法:
 

    public Girl(string name, int weight){
        this.mName = name;
        this.mWeight = weight;
    }
}

 
//演员选拔类中添加一个女演员方法
public class Compare
{
    //男演员身高是王道
    public Boy WhoIsBetter(Boy boy1, Boy boy2)
    {
        if (boy1.Height > boy2.Height)
        {
            return boy1;
        }
        else
        {
            return boy2;
        }
    }

    //女演员苗条是王道
    public Girl WhoIsBetter(Girl girl1, Girl girl2)
    {
        if (girl1.Weight < girl2.Weight)
        {
            return girl1;
        }
        else
        {
            return girl2;
        }
    }
}

 
//测试
static void Main(string[] args)
{
    Boy boy1 = new Boy("潘长江", 165);
    Boy boy2 = new Boy("刘德华", 175);

    Girl girl1 = new Girl("巩俐", 120);
    Girl girl2 = new Girl("周迅", 80);

    Console.WriteLine(new Compare().WhoIsBetter(boy1, boy2).Name);
    Console.WriteLine(new Compare().WhoIsBetter(girl1, girl2).Name);
    Console.ReadLine();
}
 </div>
结果选出了身高更高的刘德华,选出了体重更轻的周迅,导演很满意。但从程序设计角度,这段代码显然不够完美,第一天选男主角,第二天选女主角,往后还要选男配角,选女配角,选群众......按目前方式,只有往Compare类里不断添加方法才能满足导演需求,方法会越来越多,代码会越来越长。于是,我决定修改WhoIsBetter方法,让它以后可以支持男主,女主,男配,女配,男群众,女群众甚至支持所有两个对象之间的比较:
 

    public Boy(string name, int height) {
        this.mName = name;
        this.mHeight = height;
    }

    public int CompareTo(object obj)
    {
        //比较身高
        return this.mHeight - ((Boy)obj).Height;
    }
}

/// <summary>
/// 女演员:实现IComparable接口
/// </summary>
public class Girl : IComparable
{
    //姓名
    private string mName;
    //体重 www.weikejianghu.com
    private int mWeight;
    public string Name
    {
        get { return this.mName; }
    }
    public int Weight
    {
        get { return this.mWeight; }
    }

    public Girl(string name, int weight){
        this.mName = name;
        this.mWeight = weight;
    }

    public int CompareTo(object obj)
    {
        //比较体重
        return ((Girl)obj).Weight - this.

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • .NET基础之自定义泛型分析
  • .NET开发基础:从简单的例子理解泛型 分享
  • .net泛型通用函数的特殊问题的解决方法

相关文章

  • 2017-05-11ASP.NET上传图片并生成可带版权信息的缩略图
  • 2017-05-11Asp.net图片上传实现预览效果的简单代码
  • 2017-05-11实现onmouseover和onmouseout应用于RadioButtonList或CheckBoxList控件上
  • 2017-05-11关于DDD:管理"工作单元实例"的两种模式的使用方法
  • 2017-05-11水晶报表asp.net的webform下基本用法实例
  • 2017-05-11HttpWebRequest的常见错误使用TcpClient可避免
  • 2017-05-11asp.net中3种验证码示例(实现代码)(数字,数字字母混和,汉字)
  • 2017-05-11解决asp.net ajax sys未定义的解决方法
  • 2017-05-11asp.C#实现图片文件与base64string编码解码
  • 2017-05-11控件开发时两种JS嵌入资源方式的使用方法

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • ASP.NET MVC中解析淘宝网页出现乱码问题的解决方法
    • asp.net程序优化 尽量减少数据库连接操作
    • .NET读写Excel工具Spire.Xls使用 重量级的Excel图表功能(5)
    • ASP.Net全局变量的设置和读取方法
    • Asp.Net Cache缓存使用代码
    • .NET程序集引用COM组件MSScriptControl遇到问题的解决方法
    • 基于asp.net下使用jquery实现ajax的解决方法
    • 防止重复提交 仅提交一次的终极绝杀技
    • VS2010发布Web网站技术攻略
    • ASP.NET设计网络硬盘之下载或在线查看实现代码

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有