C#概念区分
lazypen555
这个作者很懒,什么都没留下…
展开
-
堆栈和托管堆
<br />内存格局通常分为四个区<br />全局数据区:存放全局变量,静态数据,常量<br />代码区:存放所有的程序代码<br />栈区:存放为运行而分配的局部变量,参数,返回数据,返回地址等,<br />堆区:即自由存储区<br /> 值类型变量与引用类型变量的内存分配模型也不一样。为了理解清楚这个问题,首先必须区分两种不同类型的内存区域:线程堆栈(Thread Stack)和托管堆(Managed Heap)。<br /> 每个正在运行的程序都对应着一个进程(process),在转载 2010-07-26 09:42:00 · 563 阅读 · 0 评论 -
C# get post的原理与用法介绍
<br />C# get post实现的内容很不同,如他们的传值方式不同等等,本文将做详细的讲解,本文也会给你C# get post方式请求web的具体方法。 <br />C# get post中post和get的不同之处<br />get与post的区别在于:(对于CGI)<br />如果以get方式传输,所带参数附加在CGI程式的URL后直接传给server,并可从server端的QUERY_STRING这个环境变量中读取;<br />如果以post方式传输,则参数会被打包在数据报中传送给server,转载 2010-09-07 22:52:00 · 466 阅读 · 0 评论 -
C# 多态性
<br />理解C#多态性之前首先理解一下什么叫多态。同一操作作用于不同的对象,可以有不同的解释,产生不同的执行结果,这就是多态性。C#多态性通过派生类覆写基类中的虚函数型方法来实现。<br />C#多态性分为两种,一种是编译时的多态性,一种是运行时的多态性。<br />◆编译时的多态性:编译时的多态性是通过重载来实现的。对于非虚的成员来说,系统在编译时,根据传递的参数、返回的类型等信息决定实现何种操作。<br />◆运行时的多态性:运行时的多态性就是指直到系统运行时,才根据实际情况决定实现何种操作。C#中转载 2010-09-07 16:16:00 · 443 阅读 · 0 评论 -
c# 开放类型和封闭类型概念
4.4.2 开放和封闭类型<br />所有类型都可归类为开放类型(open type)或封闭类型(closed type)。开放类型是包含类型形参的类型。更明确地说:<br />· 类型形参定义开放类型。<br />· 当且仅当数组元素类型是开放类型时,该数组类型才是开放类型。<br />· 当且仅当构造类型的一个或多个类型实参为开放类型时,该构造类型才是开放类型。当且仅当构造的嵌套类型的一个或多个类型实参或其包含类型的类型实参为开放类型时,该构造的嵌套类型才转载 2010-09-07 08:40:00 · 1499 阅读 · 0 评论 -
历史纠葛:特性和属性(转载)
<br />本文将介绍以下内容: <br />• 定制特性的基本概念和用法<br />• 属性与特性的区别比较<br />• 反射的简单介绍<br />1. 引言<br />attribute是.NET框架引入的有一技术亮点,因此我们有必要花点时间来了解本文的内容,走进一个发现attribute登堂入室的入口。因为.NET Framework中使用了大量的定制特性来完成代码约定,[Serializable]、[Flags]、[DllImport]、[AttributeUsage]这些的构造,相信我们都见过吧转载 2010-08-17 14:45:00 · 109 阅读 · 0 评论 -
C# 特性
<br />首先要说的是,可能一些刚接触C#的朋友常常容易把属性(Property)跟特性(Attribute)弄混淆,其实这是两种不同的东西。属性就是面向对象思想里所说的封装在类里面的数据字段,其形式为:<br /><br />在HumanBase这个类里出现的字段都叫属性(Property),而C#特性(Attribute)又是怎样的呢?<br /> <br />简单地讲,我们在HumanBase类声明的上一行加了一个[Serializable],这就是特性(Attribute),它表示HumanBas转载 2010-08-16 15:10:00 · 412 阅读 · 0 评论 -
继承和派生
<br />C#高级(五)继承,派生类,派生类的构造方法<br />一、基本概念<br />首先我们来了解两个基本概念:实现继承和接口继承<br />(1)、实现继承,表示一个类派生于一个基类型,并拥有该基类型的所有成员字段和函数。<br />(2)、接口继承,表示一个类型只继承了函数的签名,没有任何实现的代码。在需要指定该类型具有某些可用的特性时,最好使用这种继承。<br />注意,在C#中,不支持多重继承,但一个类却可以实现多个接口。同样,结构总是派生于System.ValueType , 他们还可以派转载 2010-06-21 08:36:00 · 221 阅读 · 0 评论 -
C#属性详解
<br />C#属性是对类中的字段(fields)的保护,像访问字段一样来访问属性。同时 也就封装了类的内部数据using System;<br />using System.Collections.Generic;<br />using System.Text;<br /><br />namespace Example_1<br />{<br /> class age<br /> {<br /> private int _age;<br /> public void转载 2010-06-19 14:40:00 · 250 阅读 · 0 评论 -
类型转换和内容转换之间的一些区别
<br />这两个都是转换成整型的,只是它们的长度不同。int为16位的,而下面的那个是32位的 <br /><br />首先,我要指出的是,在 C# 中,int 其实就是 System.Int32,即都是32位的。 <br /><br />其次,(int) 和 Convert.ToInt32 是两个不同的概念,前者是类型转换,而后者则是内容转换,它们并不总是等效的。我们很清楚 C# 提供类型检查,你不能把一个 string 强制转换成 int,隐式转换就更加不可能,例如如下的代码就行不通了: <br />转载 2010-06-19 13:51:00 · 215 阅读 · 0 评论 -
C#数组概念
<br />数组概述<br />C# 数组从零开始建立索引,即数组索引从零开始。C# 中数组的工作方式与在大多数其他流行语言中的工作方式类似。但还有一些差异应引起注意。<br />声明数组时,方括号 ([]) 必须跟在类型后面,而不是标识符后面。在 C# 中,将方括号放在标识符后是不合法的语法。<br />int[] table; // not int table[]; <br />另一细节是,数组的大小不是其类型的一部分,而在 C 语言中它却是数组类型的一部分。这使您可以声明一个数组并向它分配 int转载 2010-06-19 13:50:00 · 204 阅读 · 0 评论 -
C#集合详解
<br />集合,表示可以通过遍历每个元素来访问的一组对象(特别是可使用foreach循环访问)<br />一个集合包括多个元素,即有一个集合类对象和N个元素对象<br />---------------------------<br />因为任何集合类都实现了IEnumerable接口,所以任何集合类对象都有一个GetEnumerator()方法,该方法可以返回一个实现了IEnumerator接口的对象,这个返回的IEnumerator对象既不是集合类对象,也不是集合的元素类对象,它是一个独立的类对象。通转载 2010-06-19 09:44:00 · 1154 阅读 · 0 评论 -
理解C#值类型与引用类型
<br />从概念上看,值类型直接存储其值,而引用类型存储对其值的引用。这两种类型存储在内存的不同地方。在C#中,我们必须在设计类型的时候就决定类型实例的行为。这种决定非常重要,用《CLR via C#》作者Jeffrey Richter的话来 说,“不理解引用类型和值类型区别的程序员将会给代码引入诡异的bug和性能问题(I believe that a developer who misunderstands the difference between reference types and value转载 2010-06-19 13:33:00 · 204 阅读 · 0 评论 -
List泛型集合
<br />集合是OOP中的一个重要概念,C#中对集合的全面支持更是该语言的精华之一。<br /> 为什么要用泛型集合?<br /> 在C# 2.0之前,主要可以通过两种方式实现集合:<br /> a.使用ArrayList<br /> 直接将对象放入ArrayList,操作直观,但由于集合中的项是Object类型,因此每次使用都必须进行繁琐的类型转换。<br /> b.使用自定义集合类<br /> 比较常见的做法是从CollectionBase抽象类继承一个自定义类,通转载 2010-06-19 09:45:00 · 951 阅读 · 0 评论 -
应用程序启动时缓存数据
简介<br />前两篇教程探讨了在表示层和缓存层缓存数据。在使用 ObjectDataSource 缓存数据 教程 中 , 我们探讨了在表示层使用 ObjectDataSource 的缓存功能来缓存数据。在架构中缓存数据 教程 探讨了在一个新的独立的缓存层中缓存数据。这两篇教程都是使用 应激装载方法来处理数据缓存。使用应激装载方法,每次请求数据时,系统首先检查数据是否在缓存中。如果不在,则从数据源,比如数据库,来获取数据,然后将其保存在缓存中。应激装载的主要优点是易于实现。其缺点之一就是程序的性能对于各个请原创 2011-03-17 23:46:00 · 185 阅读 · 0 评论