随笔分类 -  c#学习笔记

学习c#,理解面向对象语言的精髓。面向对象归根结底就是来自人类生活中,值得细细品味。
摘要:C四个 C++五个一. 在c中分为这几个存储区1.栈- 由编译器自动分配释放2.堆- 一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收3.全局区(静态区),全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域,未初始化的全局变量和未初始化的静态变量在相邻的另一块区域。- 程序结束释放4.另外还有一个专门放常量的地方。- 程序结束释放二.在C++中,内存分成5个区,他们分别是堆、栈、自由存储区、全局/静态存储区和常量存储区1.栈,就是那些由编译器在需要的时候分配,在不需要的时候自动清除的变量的存储区。里面的变量通常是局部变量、函数参数等。2.堆,就是那些由ne 阅读全文
posted @ 2013-09-01 09:32 楠楠IT 阅读(776) 评论(0) 推荐(0)
摘要:1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 6 namespace CsharpDataStructure 7 { 8 class Program 9 {10 //声明:本程序只说明几种常见委托和代理的使用,名称的定义不是很规范11 public delegate void MyAction<T>(T obj);//自己定义的委托,无返回值,只有一个泛型参数12 static vo... 阅读全文
posted @ 2013-05-03 19:13 楠楠IT 阅读(309) 评论(0) 推荐(0)
摘要:单例模式---顾名思义,就是一个类只有一个实例对象,只实例化一次。它有三个要点:(1)一个类只有一个实例(2)类本身自行创建这个实例(3)它必须自行上下向整个系统提供该实例。代码实现: 1 public class QQSingle 2 { 3 private string name; 4 private static QQSingle qqsingle; 5 private static object _lock = new object(); 6 public string Name 7 { 8 ... 阅读全文
posted @ 2013-04-08 16:44 楠楠IT 阅读(222) 评论(0) 推荐(0)
摘要:在C#中,我们可以非常自由的、毫无限制的访问公有字段,但有时我们可能希望:(1)限制只能给字段赋于某个范围的值;(2)或是要求字段只能读或只能写;(3)或是在改变字段时能改变对象的其他一些状态; 这些只靠字段是无法做到的,于是就有了属性。 属性中包含两个块:set和get,set块负责属性的写入工作,get块负责属性的读取工作。 在两个块中都可以做一些其他操作,如在set中验证赋的值是否符合要求并决定是否进行赋值。 set和get块中属性必需有一个,因为即不能读又不能写的属性是没有意义的。 下面举个简单的例子:(1)属性可以保证安全,当不在本类中使用时,使用属性名可以避免用字段的名... 阅读全文
posted @ 2013-04-04 13:44 楠楠IT 阅读(1674) 评论(0) 推荐(0)
摘要:c#中abstract class、virtual、interface是很重要的概念,刚接触难免会有很多疑惑,它们有什么区别,都怎么用,下面是我整理的一些帮助大家理解。 abstractclass是抽象类:比如说,圆形和三角形都是形状,圆形和三角形有具体的表现方式,定义为具体类。而形状没办法具体表现出来,就只能定义为抽象类,抽象类可以有自己的属性,可以有非abstract的方法。所以,抽象类强制要求其继承者重写,抽象方法声明时不提供其自身的实现,抽象类不能被实例化; interface是接口:相当于某些具体对象的交叉点,这个点本身不能做什么,只能把操作传达给各个具体的对象,让对象自己去... 阅读全文
posted @ 2013-04-03 20:06 楠楠IT 阅读(424) 评论(0) 推荐(0)