随笔 - 657  文章 - 4  评论 - 213  阅读 - 432万
02 2012 档案
对象的比较与排序(四):对象的相等判断Equals和IEquatable<T>(转)
摘要:本节覆盖了以下知识点:一、Object.Equals()方法;二、“==”,“!=”运算符重载;三、IEquatable<T> 接口。一、重写Equals方法。众所周知,Object类型有一个名为Equals的实例方法可以用来确定两个对象是否相等。Object的Equals的默认实现比较的是两个对象的引用等同性。而Object的派生类ValueTpye重写了Equals方法,它比较的是两个对象的逻辑等同性。也就是说,在C#里,引用类型的默认Equals版本关注的是引用等同性,而值类型关注的是逻辑等同性。当然,这并不总能满足我们的要求。所以每当我们更在意引用类型的逻辑等同性的时候,我 阅读全文
posted @ 2012-02-20 16:30 一路前行 阅读(1768) 评论(0) 推荐(0) 编辑
对象的比较与排序(三):实现IComparable<T>和IComparer<T>泛型接口(转)
摘要:1:比较和排序的概念 比较:两个实体类之间按>,=,<进行比较。 排序:在集合类中,对集合类中的实体进行排序。排序基于的算法基于实体类提供的比较函数。 基本型别都提供了默认的比较算法,如string提供了按字母进行比较,int提供了按整数大小进行比较。2:IComparable和IComparer 这两个接口上一日记已经介绍过,现在用一实例再次讲解一次 当我们创建了自己的实体类,如Student,默认想要对其按照年龄进行排序,则需要为实体类实现IComparable接口。 class Student:IComparable { public string Name { ge... 阅读全文
posted @ 2012-02-20 16:22 一路前行 阅读(478) 评论(0) 推荐(0) 编辑
对象的比较与排序(二):实现IComparable和IComparer接口 和 Comparer类(转)
摘要:在默认情况下,对象的Equals(object o)方法(基类Object提供),是比较两个对象变量是否引用同一对象。我们要必须我自己的对象,必须自己定义对象比较方式。IComparable和ICompare 接口是.net framework 中比较对象的标准方式,这两个接口之间的区别如下:1. IComparable 在要比较的对象的类中实现,可以比较该对象和另一个对象。2.IComparer 在一个单独的类中实现,可以比较任意两个对象。一般情况下,我们使用 IComparable 给出类的默认比较代码,使用其他类给出非默认的比较代码。一、IComparable提供了一个方法int Com 阅读全文
posted @ 2012-02-20 16:18 一路前行 阅读(303) 评论(0) 推荐(0) 编辑
对象的比较与排序(一):类型比较和值比较(转)
摘要:一、类型比较1.GetType() 方法,所有的类都从system.object 中继承了这个方法,这个方法和typeof()运算符一起使用,就可以确定对象的类型if(myObj.GetType()) == typeof(MyClass){ //myObj是对象名,MyClass是一个类名}2. is运算符(平时用得多,不再叙述)二。值比较1.运算符重载2.使用 IComparable 和 IComparer 接口。它们可以用标准的方式定义比较对象的过程。也是对集合中的对象排序的一种绝佳方式。转自:http://www.cnblogs.com/eagle1986/archive/2012/02 阅读全文
posted @ 2012-02-20 16:14 一路前行 阅读(302) 评论(0) 推荐(0) 编辑
IComparable
摘要:usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;usingSystem.IO.Ports;usingDeviceMonitor.DBUtility;usingDeviceMonitor.RealData;usingSystem.Collections;usingSystem.Diagnostics;namespaceDeviceMonitor{///<summary>///串口扩展类,继承SerialPort类///</summary>publicclassSer 阅读全文
posted @ 2012-02-17 14:04 一路前行 阅读(325) 评论(0) 推荐(1) 编辑
goto
摘要:usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;namespaceConsoleApplication1{classProgram{staticvoidMain(string[]args){stringstrIntValue=Console.ReadLine();compute:if(strIntValue.ToUpper()=="CLS"){Console.Clear();}else{Console.WriteLine(CommonUtility.ConvertTo 阅读全文
posted @ 2012-02-08 00:08 一路前行 阅读(234) 评论(0) 推荐(0) 编辑
C# 3.0以后新特性总结(转)
摘要:什么是Linqtosql Linqtosql(或者叫DLINQ)是LINQ(.NET语言集成查询)的一部分,全称基于关系数据的.NET语言集成查询,用于以对象形式管理关系数据,并提供了丰富的查询功能,它和Linqtoxml、Linqtoobjects、Linqtodataset、Linqtoentities等组成了强大的LINQ。 要学好LINQ查询语法,就不得不先理解C#3.0的一些新特性,下面一一简单介绍。隐含类型局部变量varage=26;varusername="zhuye";varuserlist=new[]{"a","b" 阅读全文
posted @ 2012-02-03 10:53 一路前行 阅读(301) 评论(0) 推荐(0) 编辑
用C++/CLI与非托管代码交互比用C#方便多了(转)
摘要:没有使用C++/CLI之前,我很怀疑它存在的意义。因为C#的语法更清爽,运行效率也不比C++差多少.C++本身就很复杂了,再乘以CLI的复杂度,我不能想出人们为什么会学习它,使用它。但是在使用C#的过程中,渐渐发现.Net类库不够丰富,有很多功能必须通过P/Invoke来实现.一般常用的Windows API函数还好说,接口通常比较简单,DllImport + IntPtr已经足够了,而且还有www.pinvoke.net这个很大的资源库,使用起来还是相当方便的. 虽然有时看到那个日渐庞大的NativeMethods类不爽,但是整体来说,能解决问题。 等到我必须使用第三方C/C++类库时... 阅读全文
posted @ 2012-02-01 17:34 一路前行 阅读(2541) 评论(0) 推荐(0) 编辑

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示