泛型(CSDN转载)

时间:2022-06-20 12:34:55

函数的参数不同叫多态,函数的参数类型可以不确定吗?

函数的返回值只能是一个吗?函数的返回值可以不确定吗?

泛型是一种特殊的类型,它把指定类型的工作推迟到客户端代码声明并实例化类或方法的时候进行。

下面是两个经典示例:

1.输入一个字符串,转化为想要的类型。

利用泛型的特性,返回值可以是指定的类型。

2.比较两个对象,返回值较大的一个。

using System;

using System.Collections.Generic;

using System.Text;

namespace FamilyManage

{

class CGeneric

{

//数据转换

static public T Convert<T>(string s) where T : IConvertible

{

return (T)System.Convert.ChangeType(s, typeof(T));

}

//取两个数较大的一个

static public T Max<T>(T first, T second) where T : IComparable<T>

{

if (first.CompareTo(second) > 0)

return first;

return second;

}

//使用

static public void test()

{

int iMax = Max(123, 456);

double dMax = Max<double>(1.23, 4.56);//可以指定返回类型

int iConvert = Convert<int>("123456");

float fConvert = Convert<float>("123.456");

System.Windows.Forms.MessageBox.Show(iMax + "|" + dMax + "|" + iConvert + "|" + fConvert);

}

}

}

  System.Convert.ChangeType(s, typeof(T));这个函数,在以往的项目中用的比较少,用的最多的还是Convert.ToInt()和Convert.ToDouble()。一般多是把一个字符串转化需要的整型数据或者浮点型数据。例如:

  

            string intString="";
int result=System.Convert.ToInt32(intString);
Console.WriteLine(result); //输出123

  也有用Int类或者Double类的Parse或者TryParse函数进行转化的,在此不在举例。把注意力拉回到System.Convert.ChangeType(s, typeof(T));这个函数。

  ChangeType:返回一个指定类型的对象,该对象的值等效于指定的对象。此方法有四种函数重载。如下面的表格所示:

泛型(CSDN转载)

        double d = -2.345;
int i = (int)Convert.ChangeType(d, typeof(int)); Console.WriteLine("The double value {0} when converted to an int becomes {1}", d, i); string s = "12/12/98";
DateTime dt = (DateTime)Convert.ChangeType(s, typeof(DateTime)); Console.WriteLine("The string value {0} when converted to a Date becomes {1}", s, dt);

  

                                          想要了解更多请参看MSDN的Convert类。

泛型(CSDN转载)的更多相关文章

  1. 如何优雅地从CSDN转载文章

    复制粘贴应该是最显而易见的方法,但是不仅会有丢失内容,而且格式也会丢失.要想达到更好的效果,可以从html源码入手. 1.在chrome浏览器中打开要转载的文章,右键选择检查 2.在chrome的右方 ...

  2. c&num;泛型约束&lpar;转载&rpar;

    博客地址:https://www.cnblogs.com/zhengwk/p/5541921.html 六种类型的约束: T:结构 类型参数必须是值类型.可以指定除 Nullable 以外的任何值类型 ...

  3. &lbrack;CSDN转载&rsqb;致C语言初学者—指针注意项

    在论坛里经常见到一些新人对指针提出一些问题,作为一个经历过许多错误后的新手,我想把自己的经历说出来,避免让后来人继续这样的错误.    在讲解指针之前,需要理解一下内存空间.内存是随机存取器,计算机上 ...

  4. 关于CSDN的一些信息

    CSDN资源共享规范 为广大用户提供资源(包括但不限于文章.文档.音频.视频.图片.课程.软件.源代码等相关资源)共享的网络存储平台 与不得违反国家法律法规相关的规定 不得上传与CSDN提供的服务内容 ...

  5. Java 类反射机制分析

    Java 类反射机制分析 一.反射的概念及在Java中的类反射 反射主要是指程序可以访问.检测和修改它本身状态或行为的一种能力.在计算机科学领域,反射是一类应用,它们能够自描述和自控制.这类应用通过某 ...

  6. Android反射机制实现与原理

    本文介绍Android反射机制实现与原理,在介绍之前,要和Java进行比较,所以先看下Java中的反射相关知识: 一.反射的概念及在Java中的类反射 反射主要是指程序可以访问.检测和修改它本身状态或 ...

  7. android中反射机制

    本文介绍Android反射机制实现与原理,在介绍之前,要和Java进行比较,所以先看下Java中的反射相关知识: 一.反射的概念及在Java中的类反射 反射主要是指程序可以访问.检测和修改它本身状态或 ...

  8. std(标准库)和STL(标准模板库)的关系

    C++标准库的内容分为10类: C1.语言支持 C2.输入/输出 C3.诊断 C4.一般工具 C5.字符串 C6.容器 C7.迭代器支持 C8.算法 C9.数值操作 C10.本地化: 下面分类详解: ...

  9. apt-get remove&comma; apt-get autoremove和aptitude remove的区别

    这篇文章的图片链接发生了问题,无法正常查看图片,所以我在CSDN转载一下,特此声明. apt-getremove的行为我们很好理解,就是删除某个包的同时,删除依赖于它的包,例如:A依赖于B, B依赖于 ...

随机推荐

  1. Ajax省市区无刷新单表联动查询

    方法一: 在很多时候都需要用到无刷新级联查询,本文将以省市区的级联查询作为例子.注:此为单表三级联动 环境:Vistual Studio 2015 .MSSQL 1.首先下载AjaxControlTo ...

  2. 记忆用户设置-提升程序的体验VB&sol;C&num;

    有时候,设计的程序有很多的控件,甚至多达近百个,尤其是一些工控软件等,程序运行所需的各种参数都是由用户通过这些控件设置而来,那么记录用户的设置就显得十分必要.如果程序出现异常,起码重新打开可以不用再一 ...

  3. 段落的展开收起&lpar;substring的应用&rpar;

    <!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content ...

  4. 04-时序逻辑电路设计之计数器——小梅哥FPGA设计思想与验证方法视频教程配套文档

    芯航线--普利斯队长精心奉献 实验目的:以计数器为例学会简单的时序逻辑电路设计 实验平台:芯航线FPGA核心板 实验原理: 时序逻辑电路是指电路任何时刻的稳态输出不仅取决于当前的输入,还与前一时刻输入 ...

  5. OC键值观察KVO

    什么是KVO? 什么是KVO?KVO是Key-Value Observing的简称,翻译成中文就是键值观察.这是iOS支持的一种机制,用来做什么呢?我们在开发应用时经常需要进行通信,比如一个model ...

  6. The fundamental knowledge of Node JS&period;

    D3 JSJava scirpt is an awesome language for Internface Design.All Obejcts in JavaScirpt could be use ...

  7. Spring及SpringBoot &commat;Async配置步骤及注意事项

    前言 最近在做一个用户反馈的功能,就是当用户反馈意见或建议后服务端将意见保存然后发邮件给相关模块的开发者.考虑发邮件耗时的情况所以我想用异步的方法去执行,于是就开始研究Spring的@Async了.但 ...

  8. 作为新手在学习SSM&plus;Easyui过程中遇到一系列问题

    对于初学SSM来说,如果不熟悉SSM中SpringMVC对数据处理,会造成很大的困扰, SSM中对前台页面放在WEB-INF下,对于读取外部信息,例如导入easyui的js文件.以及不能直接进行跳转. ...

  9. ie11开发者模式打开空白

    Internet选项——高级——取消  禁用脚本调试(Internet explorpr)

  10. 数据库-mysql语句-查-WEB服务器

    (1)MySQL中的查询 (2)WEB服务器 Order:  订单.排序 Set:设置.集合 Table:表.桌子 1.MySQL中的简单查询 —— 查询结果的排序 示例:查询出所有员工信息,要求按工 ...