当前位置: 首页 > news >正文

做网站php与python农业建设信息网站

做网站php与python,农业建设信息网站,wordpress json 插件安装,2008系统做网站假设需要一个两个整形变量交换的函数#xff0c;我们很快就可以嗒嗒嗒嗒的敲出下面的 Swap 函数#xff1a;void Swap(ref int lhs, ref int rhs){int temp lhs;lhs rhs;rhs temp;}随着项目进展#xff0c;我们发现#xff0c;需要用到 Swap 函数的不仅是整形,变量 还有…假设需要一个两个整形变量交换的函数我们很快就可以嗒嗒嗒嗒的敲出下面的 Swap 函数 void Swap(ref int lhs, ref int rhs){    int temp lhs;    lhs rhs;    rhs temp;} 随着项目进展我们发现需要用到 Swap 函数的不仅是整形,变量 还有字符串于是我们我又嗒嗒嗒嗒的重载 Swap 函数如下 void Swap(ref string lhs, ref string rhs){    string temp lhs;    lhs rhs;    rhs temp;} 接下来的开发中我们又发现还有自定义的结构体类等等等等都要用到 Swap 函数。如果我们为每一种类型都实现一个相应的 Swap 函数的话各个版本的 Swap 函数数据类型不同外其它完完全全一样。也就是说项目中存在大量的代码重复。能不能之实现一个能够适用于不同数据类型的 Swap 函数消除这种代码冗余从而减少工作量提高开发效率呢类型转换在 C# 中 所有的类型都直接或间接的继承自 System.Object 类。换句话说所有的类型都可以转换为 Object 类。这为我们前面的问题提供了一个解决方案——实现一个以 Object 为类型参数的 Swap 函数。其实现如下 void Swap(ref object lhs, ref object rhs){    object temp lhs;    lhs rhs;    rhs temp;} 调用的代码如下//a, b 为要传入 Swap 函数的变量object objA a;object objB b; Swap(ref objA, ref objB); //T 为变量 a 和 b 的数据类型a (T)objA;b (T)objB; 这一实现利用类型转换有效的重用了 Swap 的代码但有两点不足。 首先是性能问题。每次调用 Swap 函数前需要对其参数进行一次向上的转型调用完之后又要对其进行一次向下的转型。如果需要多次调用 Swap 函数(比如在一个很大的循环中)转型带来的开销是想当可观的特别是当参数为值类型的时候。 第二是无法提供编译时类型检查。下面的例子虽然能通过编译但运行时会出现异常 string a  “This is a string”;int b 0; object objA a;object objB b; Swap(ref objA, ref objB);               //可以编译 a (string)objA;               //出现运行时异常b (ing)objB; 针对以上两点不足C# 2.0 提出了泛型。泛型泛型是C# 2.0 提供的延迟类和函数中数据类型的定义直到客户代码声明或实例化该数据类型。 泛型版的 Swap 函数实现如下 void SwapT(ref T lhs, ref T rhs){    T temp lhs;    lhs rhs;    rhs temp;}          泛型集合中的 T是obj类型上例中的类型参数 T 可以实例化为任意数据类型。相对于通过类型转换重用 Swap 函数它且不需要类型转换有效的提高性能。而且它还能提供编译时类型检查。调用语法与普通函数调用完全一样。泛型的优势从上面例子可以看出使用泛型具有如下三点优势 ?       避免重复代码最大化代码重用?       避免无谓的类型转换提高性能?       提供编译时类型检查具有类型安全性 C# code // 在三角符号里写入类型参数Tpublic class GenericListT {// Node为非泛型类作为GenericListT的嵌套类 private class Node {// 在非泛型构造函数中使用T public Node(T t) { next null; data t; }private Node next;public Node Next {get { return next; }set { next value; } }// T作为私有成员的数据类型 private T data;// T作为属性的返回类型 public T Data {get { return data; }set { data value; } } }private Node head;// 构造函数 public GenericList() { head null; }// T 作为方法的参数类型 public void AddHead(T t) { Node n new Node(t); n.Next head; head n; }public IEnumeratorT GetEnumerator() { Node current head;while (current ! null) {yield return current.Data; current current.Next; } }}下面的代码示例演示客户端代码如何使用泛型 GenericList T 类来创建整数列表。只需更改类型参数即可方便地修改下面的代码示例创建字符串或任何其他自定义类型的列表 C# code class TestGenericList{static void Main() {// int 是类型变量 GenericListint list new GenericListint();for (int x 0; x 10; x) { list.AddHead(x); }foreach (int i in list) { System.Console.Write(i ); } System.Console.WriteLine(\n完成); }}泛型也在用在类里可以对参数进行约束而对于new约束而言有点特殊 public class DictionaryK,V where K: IComparable{    public void Add(K key, V value)    {                if (key.CompareTo(x)  0) {}            }}这样就保证了任何为K类型参数提供的类型都实现了IComparable接口。所以我们的key就可以使用CompareTo方法了。 如果我们在使用时提供了没有实现IComparable接口的类型就会出现编译时错误。对于new()约束大家可能有一个误解以为使用了new约束之后在创建对象时与非泛型的版本是一致的publicclassTesterTwhereT:new(){publicTester(){tnewT();//等同于非泛型版本的new?例如objectonewobject();?}privateTt;}  事实上使用new关键字的作用只是让编译器在泛型实例化之处检查所绑定的泛型参数是否具有无参构造函数TesterSomeTypetnewTesterSomeType();//此处编译器会检查SomeType是否具有无参构造函数。若没有则会有compileerror 转载于:https://www.cnblogs.com/dewin/archive/2009/06/28/1512868.html
http://www.yutouwan.com/news/389073/

相关文章:

  • 做摄影网站的目的是什么意思大健康网站怎么样做
  • 龙文网站建设做公司网站的价格
  • wordpress网站案例网站服务器配置参考指南
  • 网站怎样做推广网站怎么seo
  • 外贸自建站可以自己做网站吗工程公司取名大全
  • 网站建设和建议头像制作免费软件
  • 柳州网站建设公各大招聘网站
  • 广东城乡住房建设厅网站公司网站建设的现状
  • 做wps的网站赚钱公司招聘做哪家网站
  • 网站开发的基本技术路线网站建设与管理自考重点
  • 织梦网站案例网站建设要学哪些东西
  • 《工程建设》官方网站中文网站外链查询工具
  • 被忽悠去做网销了网络营销优化培训
  • 国外免费推广网站有哪些wordpress 保存图片
  • 论述网站建设过程中应注意的问题汽车行业网站建设
  • 桂林北站时刻表wordpress打赏积分代码
  • 做网站要学什么语言网上培训ui设计
  • 网站模板之家免费下载淘宝客网站一般用什么做的
  • 昌平区网站建设wordpress编辑器字体
  • 网站建设需要客户提供什么内容厦门的企业网站
  • 企业商城建站石家庄做网站好的网络技术有限公司
  • 个人网站备案说明wordpress商品模板
  • 注册域名怎么建设网站微信公众号开发多少钱
  • 做分销网站多少钱wordpress改成中文
  • asp net做购物网站安卓 wordpress
  • 重庆网站制作设计获客广东省白云区邮政编码
  • 资源网站优化排名软件公司上海正规网站建设耗材
  • cc域名做网站怎么样计算机的网站建设
  • 专业商城网站建设报价爱网站关键词挖掘
  • 网站内容分享手机可以设计网站吗