2012年6月25日

值类型和引用类型的最基本的区别是什么?

摘要: C#将类型分为两类,一类是值类型,另一类是引用类型。大部分固有的基本类型(如整型,浮点型)是值类型,结构类型也是值类型。引用类型包括类、接口、数组和字符串。基本的概念非常简单,那就是一个值类型的实例代表了实际的数据(存在栈中),而一个引用类型的实例代表指向数据的指针或者引用(存在堆中)。在C#中是这样的:int x1 = 3; // x1是堆栈上的值 int x2 = new int(); x2 = 3; // x2还是堆栈上的值! 阅读全文

posted @ 2012-06-25 14:03 流星落 阅读(193) 评论(0) 推荐(0) 编辑

C#值类型和引用类型

摘要: 所有的数据在C#中都可以最为两种基本数据类型:值类型和引用类型。什么是值类型呢,值类型数据存储在内存的栈中,可以提供快速访问。如果变量是值类型的,这个变量就包含实际数据,在一个内存区域保存自己的值。如果在代码中修改其值后,在内存中会保存修改的值。C#的整型,字符型,浮点型,布尔型等都属于值类型。结构,枚举也属于值类型。引用类型指向存储在内存堆中的数据的指针和引用。引用类型总是指向一个对象,而且这个对象具有指定的类型,并且在堆上分配了地址。字符串,数组,接口,类,委托都属于引用类型。值类型和引用类型的区别1. 值类型的数据存储在内存的栈中;引用类型的数据存储在内存的堆中,而内存单元中只存放堆中对 阅读全文

posted @ 2012-06-25 14:02 流星落 阅读(388) 评论(1) 推荐(0) 编辑

运算符的优先级和结合性

摘要: 当表达式中包含多个运算符时,运算符的优先级控制各运算等的计算顺序。如x+y*z,按x+(y*z)计算。当一个操作数出现在两个相同优先级的运算符时,这些运算符的运算顺序取决于其结合性,结合性指运算符在表达式中从左到右或从右到左右的运算顺序。赋值运算符和条件运算符(?:)按右结合原则。除此之外,所有二元运算符都是左结合的,运算按从左到右的顺序执行。在写运算符时,在写表达式的时候,如果无法确定运算符的有效顺序,则尽量采用括号来保证运算顺序。运算符的优先级括号()>自加自减(++,--)>乘、除、取余(*,/,%)>加减(+,-)>小于、小于等于,大于,大于等于(<,<=,>,> 阅读全文

posted @ 2012-06-25 14:01 流星落 阅读(583) 评论(0) 推荐(0) 编辑

c#三元运算符

摘要: C#中有一个三元运算符“?:”,语法为:条件表达式?表达式1:表达式2;该操作首先求出条件表达式的值(bool类型),为true时调用表达式1,为flase时调用表达式2。其逻辑为:“如果为真执行第一个,否则执行第二个。”例如:a=3>4?:3:4;输出为4。a=3<4?:3:4;输出为3。using System;class Program{static void Main(){int i1=10,i2=20;int MaxValue=i1>i2?i1:i2;Console.WriteLine("i1={0},i2={1},MaxValue={2}",i 阅读全文

posted @ 2012-06-25 14:00 流星落 阅读(296) 评论(0) 推荐(0) 编辑

C#全部简化运算符

摘要: C#全部简化运算符x++, ++x 等价于x = x + 1x--,--x 等价于x = x –1x+= y 等价于 x = x + yx–= y 等价于x = x – yx *= y 等价于x = x * yx /= y 等价于x = x / yx %= y 等价于x = x % yx >>= y 等价于x = x >> yx <<= y 等价于x = x << yx &= y 等价于x = x & yx |= y 等价于x = x | yx ^= y 等价于x = x ^ y 阅读全文

posted @ 2012-06-25 14:00 流星落 阅读(237) 评论(0) 推荐(0) 编辑

C#自加和自减运算符

摘要: 如果在赋值语句中,自加运算符在变量的前面,那么变量先加1,然后赋值,称为运算前增量。如果自加运算符在变量的后边,那么先赋值,然后再加1,称为运算后增量。自减运算符表示把变量的值减1,用法与自加运算符相同。using System;class Program{public static void Main(){int a=6;int b=8;Console.WriteLine("a++等于{0}",a++);Console.WriteLine("++a等于{0}",++a);Console.WriteLine("b--等于{0}",b- 阅读全文

posted @ 2012-06-25 13:59 流星落 阅读(727) 评论(0) 推荐(0) 编辑

c#逻辑运算符

摘要: C#逻辑运算符有三种:逻辑与"&&",逻辑或"||",逻辑非"!"using System;class Progarm{static void Main(){bool flag=true;bool myfalse=false;Console.WriteLine("true && false is {0}",flag&&myfalse);Console.WriteLine("true && true is {0}",flag& 阅读全文

posted @ 2012-06-25 13:58 流星落 阅读(321) 评论(0) 推荐(0) 编辑

c#比较运算符

摘要: 大于> 小于 < 等于 == 不等于 != 大于等于 >= 小于等于 <=要注意的是等于是用了2个等号,区别于赋值的一个等号,初次学习编程的时候,经常会在判断等于时候少写一个等号变成赋值。比较型的运算返回的结果不是数字而是布尔型的真和假。在C和VBS中,用0表示假,非0表示真。在c#中不能这样操作,参考下面的代码,这个代码在c中是正确的,在c#中运行会错误,提示你常量不能转换成布尔类型:if(0) { }请看下面的例子:using System;class Test{public static void Main(){int x=3;int y=4;Console.Wr 阅读全文

posted @ 2012-06-25 13:56 流星落 阅读(431) 评论(0) 推荐(0) 编辑

C#中的赋值运算符

摘要: 赋值运算符有=、+=、-=、*=、/=、%=、&=、|=、^=、<<=、>>=等。赋值操作符的左操作数必须是一个变量、属性访问器或索引访问器的表达式,赋值结果将一个新的数值存放在左操作数所在的内存空间中。在C# 中,可以对变量进行连续赋值,这时赋值操作符是右关联的,这意味着从右向左操作符被分组,如x=y=z等价于x=(y=z)。如果操作符两侧的操作数类型不一致,则应先进行类型转换。给变量赋值的表达式称为赋值表达式,赋值表达式的值用于给变量赋值。 阅读全文

posted @ 2012-06-25 13:56 流星落 阅读(362) 评论(0) 推荐(0) 编辑

c#算术运算符

摘要: 一、 算术运算符:加 +减 -乘 *除 / (整型的除法是不算小数点的,也就是说结果是整数,余数舍去了,求余数看下面)求余数 %加减乘好理解,整型的除法和求余数因为和我们平时习惯的计算不大一样,做个例子:int i = 5, j = 2; Console.WriteLine("算除法的结果:{0}",i/j); Console.WriteLine("求余数的结果:{0}",i%j);算除法的结果:2 求余数的结果:1如果是double类型,那么用除法是可以得到我们平时看到的结果的:double i = 5, j = 2; Console.WriteLin 阅读全文

posted @ 2012-06-25 13:55 流星落 阅读(402) 评论(0) 推荐(0) 编辑

导航