标签:
尽管这些都很基础,但是工作中对这些有可能极其少接触的,也有可能接触了但是没细心留意,所以久了就变成了自己的知识体系中的一个盲点了,也算算给自己一个很好的知识补充吧。
字段和局部变量的作用域冲突问题:
比如说上面这种情况,尽管两个标识符(int j)名称相同都是j、作用域都相同都是在类Test下,但是C#把类型级别声明的变量static int j=0看作字段,把方法中声明的变量int j=1看作局部变量,而最后你输出Console.WriteLine(j);结果输出的是1,而你想输出结果是0的话,只能这样子(类型.字段)输出了Console.WriteLine(Test.j);
所以简单的说就是Main()方法中声明的新变量j隐藏了同名的类级变量
值类型存储在堆栈中,而引用类型则存储在托管堆中
值类型:
引用类型:变量是一个引用,并且设置为null时,证明这个变量不引用任何对象,它只在堆栈中开辟了一个适合大小的空间
预定义的值类型
整形:
1.所有整形类型的变量都可以被赋予十进制或者十六进制的值(后面+0x),比如:long x=0x12ab;
2.int、uint、long、ulong在没有显式申明的情况下默认int类型,如果有则:
byte b=1234; int i=-1234;
sbyte sb=-1234; uint ui=1234U;
short s=-1234; long l=-1234L;
ushort s=1234; ulong ul=1234UL;
浮点类型:
1.float数据类型比double数据类型精度小,在代码中对一个非整形数值硬编码时,编译器往往会默认为double类型,如果想指定float类型后面加F:
float f=12.3F;
double d=12.3;
decimal类型:
1.decimail一般用于财务运算,但更应该注意的是decimal类型不是基本类型,所以在计算时使用会损耗性能,一般声明都要指定后面+M:
decimal M=12.30M;
bool类型:比如bool b=false;
字符型:
1.字面量表示:
char ch=’A’;
2.十六进制的Unicode值表示:
char ch=’\u0041’;
3.整数值强转换表示:
char ch= (char)65;
4.十六进制数表示:
char ch=’\x0041’;
转义字符:
单引号 \’ 空 \0
双引号 \” 警告 \a
反斜杠 \\ 退格 \b
换页 \f 换行 \n
回车 \r
水平制表符 \t
垂直制表符 \v
标签:
原文地址:http://www.cnblogs.com/weile0769/p/4910113.html