随笔分类 -  c# 再学习

虽然已经做过几个c#项目,但深觉自己对c#的甚至面向对象开发的理解还太浮于表面,甚至很多基础都没有掌握。这里将记录我重新系统的完整的学习c#的过程
摘要:1、Where与TakeWhile,Where和sql中的where一样,返回所有满足条件的元素,而TakeWhile判断原理类似于while语句,从头逐个判断,只要条件为真就一直返回检索到的元素,只要为假就停止检索。 2、Where方法还可以传递一个index参数,这是直接用linq表达式无法实现 阅读全文
posted @ 2016-08-27 14:29 一只菜鸟猿 阅读(248) 评论(0) 推荐(0)
摘要:1、弱事件 2、类型安全(包括类型转换时可能的异常) 3、线程安全 5、装箱和拆箱 6、闭包传递局部变量时可能遇到的问题。 7、用于dictionary的键,要同时实现GetHashCode和Equals的重写并且满足一定规则。 8、重写操作符特别是类型强制转换符的要设计完善可靠的规则。 9、str 阅读全文
posted @ 2016-08-27 13:44 一只菜鸟猿 阅读(1064) 评论(0) 推荐(0)
摘要:这里存在普通的方法Foo和泛型方法Foo,如果直接调用: 则会自动优先匹配对应的非泛型方法。输出如下: 但需要注意的是,这一匹配过程是在编译过程进行的,所以如果是通过其它泛型间接调用。则只会调用对应的泛型方法: 输出如下: 阅读全文
posted @ 2016-08-26 17:40 一只菜鸟猿 阅读(2781) 评论(1) 推荐(0)
摘要:1、父类中有方法a,添加virtua修饰符可声明为虚方法,在子类中可以用override声明后重写方法a。 2、父类中有方法a,在子类中可以有new修饰符声明后隐藏父类方法。 子类重写方法后,对于子类的任何实例,父类的原方法a都已经不存在。 子类隐藏父类方法后,父类的原方法仍然存在,当子类的实例的类 阅读全文
posted @ 2016-08-26 17:40 一只菜鸟猿 阅读(6594) 评论(3) 推荐(1)
摘要:1、com为一种规范,使不同语言能在二进制层面上进行交互。 2、dll为ms的一种程序打包文件,使程序的代码能分开打包编译,并能在运行时共享。 阅读全文
posted @ 2016-08-26 17:40 一只菜鸟猿 阅读(327) 评论(0) 推荐(0)
摘要:例:(引用自Job Log的博客:http://blog.csdn.net/baidu_20993761/article/details/47272597) public delegate TResult Func<out TResult>();// TResult类型是返回值类型public de 阅读全文
posted @ 2016-08-26 17:40 一只菜鸟猿 阅读(720) 评论(0) 推荐(0)
摘要:公共语言运行库(.net运行库)即CLR 1、C#先编译为IL,IL为ms的中间语言,IL是平台无关性的。 2、CLR再将IL编译为平台专用语言。 3、CLR在编译IL时为即时编译(JIT) VB、VC++、VF均可编译为IL然后与C#进行交互 阅读全文
posted @ 2016-08-26 17:40 一只菜鸟猿 阅读(650) 评论(0) 推荐(0)
摘要:foreach 在编译成IL后,实际代码如下: 即:foreach实际上是先调用可枚举对象的GetEnumerator方法,得到一个Enumerator对象,然后对Enumerator进行while循环的相关操作,然后得到可枚举对象中的每一个值。 可以把可枚举对象中的所有值想像成一个链表,Enume 阅读全文
posted @ 2016-08-26 17:39 一只菜鸟猿 阅读(1673) 评论(0) 推荐(0)
摘要:类型 1、decimal为高精度浮点数,常用于货币计算,然后它不是基本类型,所以性能相对float和double要差。 2、@用于字符串前使转义字符 \ 无效,甚至能将回车当作换行符直接赋值给字符串变量。 3、Enum.Parse(typeof(enum),string,bool),获取string 阅读全文
posted @ 2016-08-24 18:05 一只菜鸟猿 阅读(281) 评论(0) 推荐(0)