随笔分类 -  [02]C#基础

摘要:首先先谈一下Equals()这个方法: Equals()方法,来自于Object,是我们经常需要重写的方法。此方法的默认实现大概是这样的: public virtual bool Equals(object obj) { if(obj==null) return false; if(GetType() != obj.GetType()) return false; Return... 阅读全文
posted @ 2017-12-04 23:42 迷雾千寻 阅读(356) 评论(0) 推荐(0)
摘要:1. ReferenceEquals, == , Equals Equals , == , ReferenceEquals都可以用于判断两个对象的个体是不是相等。 a) ReferenceEquals ReferenceEquals是Object的静态方法,用于比较两个引用类型的对象是否是对于同一个对象的引用。对于值类型它总是返回false。(因为Box以后的对象总是不同的,hehe) b) ==... 阅读全文
posted @ 2017-12-04 09:44 迷雾千寻 阅读(584) 评论(0) 推荐(0)
摘要:本文阐述C#中相等性比较,其中主要集中在下面两个方面 ==和!=运算符,什么时候它们可以用于相等性比较,什么时候它们不适用,如果不使用,那么它们的替代方式是什么? 什么时候,需要自定一个类型的相等性比较逻辑 在阐述相等性比较,以及如何自定义相等性比较逻辑之前,我们首先了解一下值类型比较和引用类型比较 值类型比较对比引用类型比较 C#中的相等性比较有两种: 值类型相等,两个值在某种场景下相等 引... 阅读全文
posted @ 2017-12-04 09:00 迷雾千寻 阅读(573) 评论(0) 推荐(0)
摘要:1.前言 == Equals ReferenceEquals 三个相等性测试,是.NET提供给程序员使用的三个方法,他们之间有什么联系和区别,你真的仔细研究过?虽然之前也多多少少知道一点,但是有时候又难免混淆他们之间的概念和所适用的场合,决定做一个总结系统的描述这三个宝宝 2.值类型比较和引用类型比较 在编程中实际上我们只需要这两种比较,c#中类型也就这两种 (1)值类型的比较:一般我们就... 阅读全文
posted @ 2017-12-03 09:52 迷雾千寻 阅读(225) 评论(0) 推荐(0)
摘要:1.前言 == Equals ReferenceEquals 三个相等性测试,是.NET提供给程序员使用的三个方法,他们之间有什么联系和区别,你真的仔细研究过?虽然之前也多多少少知道一点,但是有时候又难免混淆他们之间的概念和所适用的场合,决定做一个总结系统的描述这三个宝宝 2.值类型比较和引用类型比较 在编程中实际上我们只需要这两种比较,c#中类型也就这两种 (1)值类型的比较:一般我们就是判... 阅读全文
posted @ 2017-12-03 09:47 迷雾千寻 阅读(345) 评论(0) 推荐(0)
摘要:(1)NULLnull 关键字是表示不引用任何对象的空引用的文字值。null 是引用类型变量的默认值。那么也只有引用型的变量可以为NULL,如果int i=null,的话,是不可以的,因为Int是值类型的。 (2)""和String.Empty 这两个都是表示空字符串。只不过""理论上重新开辟内存空间,而String.Empty指向一处。不过优化器会优化的! string.Empty不分... 阅读全文
posted @ 2017-12-03 09:41 迷雾千寻 阅读(243) 评论(0) 推荐(0)
摘要:一、定义 静态构造函数是C#的一个新特性,其实好像很少用到。不过当我们想初始化一些静态变量的时候就需要用到它了。这个构造函数是属于类的,而不是属于哪里实例的,就是说这个构造函数只会被执行一次。也就是在创建第一个实例或引用任何静态成员之前,由.NET自动调用。class SimpleClass { // Static constructor static SimpleClass() { ... 阅读全文
posted @ 2017-12-02 10:15 迷雾千寻 阅读(452) 评论(0) 推荐(0)
摘要:文章目录 1.静态成员、实例成员 2.静态类 3.类的静态成员和非静态成员区别 --------------------------------------分割线--------------------------------------------- 1.静态成员、实例成员 1.1定义及说明 数据成员: 静态成员:静态成员变量是和类相关联的,可以作为类中"共"有的变量(是一个共... 阅读全文
posted @ 2017-12-02 10:04 迷雾千寻 阅读(409) 评论(0) 推荐(0)
摘要:eep和wait都是使线程暂时停止执行的方法,但它们有很大的不同。 1. sleep是线程类Thread 的方法,它是使当前线程暂时睡眠,可以放在任何位置。 而wait,它是使当前线程暂时放弃对象的使用权进行等待,必须放在同步方法或同步块里。2.Sleep使用的时候,线程并不会放弃对象的使用权,即不会释放对象锁,所以在同步方法或同步块中使用sleep,一个线程访问时,其他的线程也是无法访问的。 而... 阅读全文
posted @ 2017-12-01 09:53 迷雾千寻 阅读(11706) 评论(0) 推荐(0)
摘要:术语表 generics:泛型type-safe:类型安全collection: 集合compiler:编译器run time:程序运行时object: 对象.NET library:.Net类库value type: 值类型box: 装箱unbox: 拆箱implicity: 隐式explicity: 显式linked list: 线性链表node: 结点indexer: 索引器 简介 Visu... 阅读全文
posted @ 2017-11-28 09:40 迷雾千寻 阅读(1398) 评论(0) 推荐(0)
摘要:1.1 C#中的泛型 .Net 1.1版本最受诟病的一个缺陷就是没有提供对泛型的支持。通过使用泛型,我们可以极大地提高代码的重用度,同时还可以获得强类型的支持,避免了隐式的装箱、拆箱,在一定程度上提升了应用程序的性能。本文将系统地为大家讨论泛型,我们先从理解泛型开始。 1.1 理解泛型 1.1.1 为什么要有泛型? 我想不论大家通过什么方式进入了计算机程序设计这个行业,都免不了要面对数据结构和算法... 阅读全文
posted @ 2017-11-26 10:48 迷雾千寻 阅读(246) 评论(0) 推荐(0)
摘要:一个很形象的例子: 你到一个商店买东西,刚好你要的东西没有货,于是你在店员那里留下了你的电话,过了几天店里有货了,店员就打了你的电话,然后你接到电话后就到店里去取了货。在这个例子里,你的电话号码就叫回调函数,你把电话留给店员就叫登记回调函数,店里后来有货了叫做触发了回调关联的事件,店员给你打电话叫做调用回调函数,你到店里去取货叫做响应回调事件。回答完毕。 作者:常溪玲链接:https://www.... 阅读全文
posted @ 2017-10-31 20:09 迷雾千寻 阅读(240) 评论(0) 推荐(0)