C# Language Fundamentals

类型

C#语言的数据类型主要分为两类:
值类型和引用类型。

值类型又分为简单类型,结构(struct)和枚举(enum).

简单类型还可以细分为数值类型和布尔(bool)类型. C#语言中布尔类型严格地与数值类型区分,只有true和false两种取值,不存在像C/C++里那样和其他类型之间的转换,即没有非零为真的说法了.

 

  

类型大小/字节.NET类型说明
byte1Byte无符号(值0-255)
char2CharUnicode字符
bool1Boolean

true或者false

sbyte1SByte有符号(-128-127)
short2Int16 
ushort2UInt16 
int4Int32 
uint4UInt32 
float4Single 
double8Double 
decimal16Decimal最大28位加小数点,要求加前缀M或者m
long8

Int64

 
ulong8UInt64 

 

一些需要注意的地方:

    虽然C#将char定义为整型类型,但是它不能随意地在任何情况下与整数混用。这就意味着,在C#中把一个字符变量当作另外的整数数据类型看待是行不通的.

char ch;
ch=‘X';
ch=10;//error 

之所以不能这样使用,和类型的隐式(implicit)转换有关. 隐式转换只能发生在转换保证不损失信息的前提下,比如2字节的short转换为4字节的int, 上述语句试图将整形隐式转换为char类型,是不可以的,但是可以使用显式(explicit)转换:  ch=(char)10;

 

条件分支语句

case语句: 在case语句不为空时,不能向下执行,如下例:

case 1:  //可以向下执行

case 2:

因为这里case 1为空语句, 但是如果像下面这样:

case 1: 

      takesomeaction(); //不能向下执行

case 2:

这里case 1有一条语句,所以不能向下执行.如果需要case1 继续向下执行case2,必须显式使用goto 如下:

case 1:

    takesomeaction();

    goto case2 ;//显式向下执行

case 2:

 

 

条件编译

在编译代码之前,会运行预处理器(preprocessor),为编译器做一些准备工作,预处理器会检查代码, 寻找特殊的预处理器指令(directive),这些指令都以符号#开头,他们可以定义标识符,然后检查这些标识符是否存在.

 

#define DEBUG  定义了一个预处理器标识符DEBUG, 定义标识符必须在文件的最上面包括using之前.

 

# define DEBUG

 

#if DEBUG

//如果定义了DEBUG就编译此代码

#elif DEBUG1

//如果定义了DEBUG1就编译此代码

# else

//如果DEBUG和DEBUG1都没定义,则编译此代码

#endif

# undef DEBUG//取消定义DEBUG

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值