![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C#
文章平均质量分 65
rainychan2009
简化简单
展开
-
C#基础实践:引用与值类型
C#里面表示和存储数据有两类方式:1 引用类型 2 值类型。 一、引用类型 表示引用类型的关键字有三大类:class,interface,delegate。 当然,还有一种引用就是基于泛型的定义,不过其基础还是前面三种基本的类型。引用在我的理解中其实就是,基于地址的访问,地址就就需要向系统申请空间,然后指向定所分配空间的开始点,所以就有了class,delagate这两原创 2013-12-06 22:38:44 · 845 阅读 · 1 评论 -
DOTNET笔记_Convert_CONST_ReadOnly_Enumerator
1 Type Cast类型转换 前置条件: Double src = 4.5; Int32 target; 转换方式: 1) 强制转换 target = (Int32)src; 这种转换的工作原理是只取小数点左边的整数部分 2) Convert.Int32 target = Con原创 2015-09-19 23:28:07 · 372 阅读 · 0 评论 -
DOTNET笔记_操作符重载
1 操作符重载的一般原则: 重载的方法实现会用到operator关键字 重载的方法必须是public static 如果重载了 ==,那必须重载 != ,同时需要改写 Equals,GetHashCode,C#要求Equals与==的逻辑保持一致,这种同步关系本身是默认的,如果修改了Equals的比较,比如改成按内容比较,那么最好重载 ==,!=操作符,反之亦然原创 2015-09-20 12:03:56 · 379 阅读 · 0 评论 -
DOTNET笔记_值比较的实现
背景回顾1 在DOTNet的世界中,只有值类型和引用类型两种 值类型有以下几种:系统内置的基本值类型,struct,用户自定义的struct类型,Enum类型 引用类型:class,string,array,delegate,box-result2 值类型由于直接存储了内容,值类型变量的比较直接,简单; 引用类型变量,由于变量本身存储的只是托管堆上的引用,引原创 2015-09-20 11:46:30 · 387 阅读 · 0 评论 -
DOTNET笔记_GC
1 Windows进程内存管理与GC 进程 在32 位Windows上面,非托管程序的进程都有4G的虚拟地址空间,其中有一半是系统可以访问的,一半是用户可以访问的,由于是虚拟的,只有真正需要用到的时候,才可能会真正提交给该进程。每个进程都是在各自的进程空间中进行资源管理和代码执行,进程本身只是代码执行的环境,它本身并不执行任何代码,它为真正执行代码的线程提供了一个相对独立的资源原创 2015-10-01 19:05:13 · 423 阅读 · 0 评论 -
基础代码分析五:委托,引用,变量
委托实例是一个引用,委托的实例之间是独立的,一般情况下并不会影响到彼此,但是,在委托实现中,匿名方法,变量的共用会出现一些意想不到的问题。 public static void TestBoth() { MIT[] delegates = new MIT[3]; int outside = 0; for (原创 2013-12-22 21:41:36 · 683 阅读 · 0 评论 -
基础代码分析之四:委托与匿名方法
匿名方法顾名思义就是没有省略名称的方法,委托的定义需要使用delegate关键字,匿名方法的关键就是用这个关键字,让编译器可以按照左边的放类型进行正确的代码补全进行编译,生成IL.匿名了,参数列表,实现均不受影响。using System;using System.Collections.Generic;using System.Linq;using System.Text;using原创 2013-12-21 14:04:50 · 534 阅读 · 0 评论 -
代码分析三:委托,协变性
今天看到委托方法的协变性存在,会出现一个,子类重载了子类的方法,在C#2中会导致委托方法会主动找派生类的方法,但是我用VS2010试验了一下结果有点奇怪,委托方法找的还是基类的方法,难道是C#的版本不同导致的,新版本的C#已经修改了该方法?using System;using System.Collections.Generic;using System.Linq;using Syste原创 2013-12-21 11:42:21 · 703 阅读 · 0 评论 -
代码分析二:泛型方法与反射
泛型在类型安全,对于值操作的性能,代码的表现力上有极大的意义。 在CSharpInDepth中,有一个结合泛型方法和反射的例子,代码抄了一遍贴上: using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Reflection;原创 2013-12-17 22:11:11 · 625 阅读 · 0 评论 -
代码分析一:泛型与接口,枚举
VS有个一个解决方案的概念,这样诸多的工程可以放在同一个工程之中,方便管理,因为初学C#,本来以为只要我将学习的代码放到解决方案中就可以了,但是,随着代码量的增加,之前的例子还是石城大海,也没很多机会再回头看看,所以,就把一些很有意思的代码贴到博客里面,强制自己分析一遍,加深理解和印象,也保留了学习的足迹。--2013.12.15. 之前理解了接口的运行机制,但是泛型接口一度让我有点糊涂原创 2013-12-15 13:26:28 · 672 阅读 · 0 评论 -
DOTNET笔记_StringBuilder_List<T>_Array
1 由于String的不可变特性,导致任何一个修改的结果都是一个新的String实例创建,这必然导致内存的操作,从而影响效率,当然我们也知道,一般遇到不断更新字符串的情况下,我们都会自觉的使用StringBulider,但是值得注意的,StringBuilder本身也会根据当前的Capacity和内容决定是否需要重新申请内存,这样的,仍然会影响其效率;另外一方面,删除子串,或者插入子串,效率依然低原创 2015-09-22 22:35:09 · 458 阅读 · 0 评论