黑马程序员--C#编程基础(二)

------- Windows Phone 7手机开发、.Net培训、期待与您交流! -------  

1.常用知识

内存:    用户存储正在运行的程序数据(不准确) Ram: 内存有个特点,断电后里面的数据丢失

变量:    代表着一块内存空间,我们可以通过变量名称向内存 存/取 数据,有变量就不需要我们记忆复杂的内存地址.

向内存申请一块内存空间的语法:

数据类型    变量名    int a

整数在C#中的数据类型叫    int

    double:    小数

    char:        字符型,只能存储一个字符,并且要求存储的这个字符用单引号('')

    string:      字符串,就是把0个,1个或多个字符连接起来,用双引号("")

    deciml:      金钱

注意:在C#开发环境中,直接写一个有小数点的数字,这个数字是double类型的,在一个小数后面加一个m/M,就是告诉编译器这个数字是deciml类型

2.变量声明的3种方法

    ①.先声明,再赋值. int a;a=3;

    ②.定义变量时,直接赋值. int a=3;

    ③.一次声名多个同类型变量,多个变量名称之间用逗号分隔,最后以;结束这句话. string a, b,c; int a=2,b=5,c=16;

变量一定要先声明,再赋值,才能使用(取值),或者调用或写这个变量名

3.变量的命名规则

    ①.必须以"字母",_或@符号开头(不能以数字开头)

    ②.后面可以跟任意"字母",数字,下划线

  注意:

    ①.你起的变量名不要与C#系统的关键字重复

    ②.在C#中,大小写是敏感的.

    ③.同一个变量名不允许重复定义(不确定)

4.关键字:

基本数据类型使用11个关键字:intlongshortunsignedcharfloatdoublesigned_Bool_Complex_Imaginary

①.有符号整数:

  这种类型可以取正值及负值。

  int:系统的基本整数类型。C保证int类型至少有16位长。

  shortshort int:最大的short整数不大于最大的int整数值。C保证short类型至少有16位长。

  longlong long int:这种类型的整数不小于最大的long整数值。long long类型至少是64位长。

  一般的,long类型长于short类型,int类型和它们其中的一个长度相同。例如,PC机上基于DOS的系统提供16位长的shortint类型,以及32位长的long类型;    而基于Windows95的系统提供16位长的short以及32位长的int类型和long类型。

  如果您喜欢,可以使用signed关键字修饰任何一种有符号类型,以明确表示这一属性。 

②.无符号整数:

  无符号整数只有0和正值,这使得无符号数可以表达比有符号数更大的正值。使用unsigned关键字表示无符号数,例如:unsigned intunsigned longunsigned short。单独的unsigned等价于unsigned int。 

字符:

  字符包括印刷字符,如A&和+。在定义中,char类型使用1个字节的存储空间表示一个字符。出于历史原因,字符字节通常为8位,但出于表示基本字符集的需要,它也可以为16位或者更长。

  char:字符类型的关键字。一些实现使用有符号的char,另外一些则使用无符号charC允许使用signedunsigned关键字标志char的符号属性。 

浮点数:

  浮点数可以有正值或负值。

  float:系统的基本浮点类型。至少能精确表示6位有效数字。

  double:范围(可能)更大的浮点类型。能表示比float类型更多的有效数字(至少10位,通常会更多)以及更大的指数。

  long double:范围(可能)再大的浮点类型。能表示比double类型更多的有效数字以及更大的指数。 

总结:如何声明简单变量

  1.       选择所需类型。

  2.       选用合法的字符为变量起一个名字。

  3.       使用下面的声明语句格式:

type-specifier variable-name;

typespecifier由一个或多个类型关键字组成,下面是一些声明的例子:

int erset

unsigned short cash;

可以在同一类型后声明多个变量,这些变量名之间用逗号分隔,如下例所示:

char chinitans;

可以在声明语句中初始化变量,如下例所示:

float mass  6.024;

 

5.C#中的运算符                    

算术运算符                         + - * / %
  逻辑运算符                         & | ^ ~ && || !
  字符串连接运算符                   +
  增量和减量运算符                   ++ --
  移位运算符                         << >>
  比较运算符                         == != < > <= >=
  赋值运算符                         = += -= *= /= %= |= ^= <<= >>=
  成员访问运算符(用于对象和结构)   .
  索引运算符(用于数组和索引器)     []
  数据类型转换运算符                 ()
  条件运算符(三元运算符)           ?:
  委托连接和删除运算符               + -
  对象创建运算符                     new
  类型信息运算符                     sizeof(只用于不安全的代码)  is as typeof
  溢出异常控制运算符                 checked unchecked
  间接寻址运算符                     * -> &(只用于不安全的代码) []
  命名空间别名限定符                 ::
  空接合运算符                       ??
 
比较不常用却又很重要的运算符:
1、is运算符和as运算符
is运算符可以检查对象是否与特定的类型兼容。比如下例中要检查变量是否与object类型兼容:
int i=0;
if(i is object)
{
  Console.WriteLine("i is an object.");
}
as运算符用于执行引用类型的显式类型转换。如果要转换的类型和指定的类型兼容,转换就会成功进行;如果类型不兼容,as运算符就会返回值null。举例如下:
object obj1="a string";
object obj2=5;
string str1= obj1 as string;// str1="a string";
string str2= obj2 as string;//str2=null;
注:as运算符允许在一步中进行安全的类型转换,不需要先使用is运算符测试类型,再执行转换.

2、checked和unchecked运算符
有如下的代码:
byte b=255;
b++;
Console.WriteLine(b.ToString());
byte数据类型只能包含0~255的数,所以b值的增量会溢出。CLR如何处理溢出?C#提供了checked和unchecked运算符。如果把一块代码段标志为checked,CLR就会执行溢出检查,如果发生异常,就抛出异常。
byte b=255;
checked
{
  b++; //抛出OverflowException
}
Console.WriteLine(b.ToString());
如果要禁止溢出检查,可以把代码标记为unchecked:
byte b=255;
unchecked
{
  b++;
}
Console.WriteLine(b.ToString());
在上述代码中,不会抛出异常,但会丢失数据,因为byte数据类型不能包含256位,溢出的位会丢失,b变量得到的值是0.
注:unchecked是默认值。只有在需要把几个未检查的代码行放在一个明确标记为checked的大代码块中,才需要显式使用unchecked关键字。
3、sizeof运算符
学过c的都知道,sizeof可以用来确定堆栈中值类型需要的长度(单位是字节):
unsafe
{
  Console.WriteLine(sizeof(int));//结果为4,因为int有四个字节,32位 
}
4、可空类型和运算符
如果在程序中使用可空类型,就必须考虑null值在与各种运算符一起使用时的影响。通常可空类型与一元或二元运算符一起使用时,如果其中一个操作数或两个操作数都是null,其结果就是null。
int?a = null;
int?b = a+4; //b=null;
int?c = a*2; //c=null;
注意,在比较可空类型时,只有有一个操作数是null,比较的结果就是false。即不能认为因为一个条件是false,那么它的对立面就是true。
int?a=null;
int?b=10;
if(a>=b) //空值a显然不能和b比较
  Console.WriteLine("a>=b");
else
  Console.WriteLine("a<b");
5、空接合运算符(??)
空接合运算符为处理可空类型和引用类型时表示Null值的可能性提供了一种快捷方式。这个运算符放在两个操作数之间,第一个操作数必须是一个可空类型或引用类型,第二个操作数必须与第一个操作数的类型不同,或者可以隐含地转换为第一个操作数的类型。空接合运算符的计算如下:如果第一个操作数不是null,则整个表达式就等于第一个操作数的值。但如果第一个操作数是null,则整个表达式就等于第二个操作数的值。例如:
int?a=null;
int b;
b=a??10; // b的值为10;
a=15;
b=a??10;//  b的值为15;
注意:如果第二个操作数不能隐含地转换为第一个操作数的类型,就生成一个编译错误
 

------- Windows Phone 7手机开发、.Net培训、期待与您交流! -------  

转载于:https://www.cnblogs.com/meloda/archive/2012/10/07/2713551.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值