c#中值类型和引用类型的区别
摘要:1. 值类型的数据存储在内存的栈中;引用类型的数据存储在内存的堆中,而内存单元中只存放堆中对象的地址。2. 值类型存取速度快,引用类型存取速度慢。3. 值类型表示实际数据,引用类型表示指向存储在内存堆中的数据的指针或引用4. 值类型继承自System.ValueType,引用类型继承自System.Object5. 栈的内存分配是自动释放;而堆在.NET中会有GC来释放 6. 值类型的变量直接存放实际的数据,而引用类型的变量存放的则是数据的地址,即对象的引用。7. 值类型变量直接把变量的值保存在堆栈中,引用类型的变量把实际数据的地址保存在堆栈中,而实际数据则保存在堆中。注意,堆和堆栈是两个不.
阅读全文
posted @
2014-02-14 09:39
steven_2005
阅读(8263)
推荐(0)
浅谈面向对象
摘要:面向对象的三个基本特征是:封装、继承、多态。封装封装最好理解了。封装是面向对象的特征之一,是对象和类概念的主要特性。封装,也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。具备封装性的面向对象程序设计隐藏了某一方法的具体执行步骤,取而代之的是通过消息传递机制传送消息给它。封装总是为了减少操作粒度,数据结构上的封装导致了数据的减少,自然减少了问题求解的复杂度;对代码的封装使得代码得以复用,减少了代码的体积,同样使问题简化。继承面向对象编程 (OOP) 语言的一个主要功能就是“继承”。继承是指这样一种能力:它可以使用现有类的所有功能,并在
阅读全文
posted @
2014-02-13 11:23
steven_2005
阅读(396)
推荐(0)
C#使用Monitor类、Lock和Mutex类进行多线程同步
摘要:多线程程序是经常需要用到的,本文介绍C#使用Monitor类、Lock和Mutex类进行多线程同步。在多线程中,为了使数据保持一致性必须要对数据或是访问数据的函数加锁,在数据库中这是很常见的,但是在程序中由于大部分都是单线程的程序,所以没有加锁的必要,但是在多线程中,为了保持数据的同步,一定要加锁,好在Framework中已经为我们提供了三个加锁的机制,分别是Monitor类、Lock关键字和Mutex类。 其中Lock关键词用法比较简单,Monitor类和Lock的用法差不多。这两个都是锁定数据或是锁定被调用的函数。而Mutex则多用于锁定多线程间的同步调用。简单的说,Monitor和Lo.
阅读全文
posted @
2014-02-12 17:47
steven_2005
阅读(441)
推荐(0)