C#高级编程 (第六版) 学习 第二章:C#基础

第二章 基础

1,helloworld示例:

helloworld.cs

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

 

namespace HelloWorld

{

class Program

{

static void Main(string[] args)

{

Console.WriteLine("Hello Wold. C#");

return;

}

}

}

使用csc helloworld.cs编译它

2,C#main函数

static void Main()

{

}

Main函数必须为静态类型,而且返回值不是void就是int

 

3,C#中的方法定义

[modifiers] return_type MethodName([parameters])

修饰符(modifiers):用于指定用户定义的某些方法的特性。

 

4,变量

变量的初始化:

  • 变量是类或者结构中的字段,如果没有显式初始化,创建这些变量时,值为0。
  • 方法的局部变量必须在代码中显式初始化才能使用,否则会报错。

 

5,类型推断

var name = value;

变量必须初始化,声明变量并推断出类型后类型不可改变。

 

6,变量的作用域

只要类在某个作用域内,字段也在该作用域内。

局部变量存在于表示声明该变量的块语句或方法结束的封闭花括号之前的作用域内。

同名的局部变量不能在同一作用域内声明两次,但是字段可以和局部变量同名。

6,常量

常量使用const修饰

常量必须在声明时初始化,然后值就不能改变了,

 

7,值类型和引用类型

值类型:存储在堆栈中,直接存储值

引用类型:存储在托管堆上,存储引用

 

8,预定义的值类型和引用类型

值类型:

  • 整型:

名称

CTS类型

说明

sbyte

System.SByte

8位有符号整数

short

System.Int16

16位有符号整数

int

System.Int32

32位有符号整数

long

System.Int64

64位有符号整数

byte

System.Byte

8位无符号整数

ushort

System.Uint16

16位无符号整数

uint

System.Uint32

32位无符号整数

ulong

System.Uint64

64位无符号整数

uint ui = 12U;

long l = 10L;

ulong ul = 123UL;

  • 浮点类型

名称

CTS类型

说明

位数

float

System.Single

32位单精度

7

double

System.Double

64位双精度

15/16

float f = 1.2F;

  • decimal类型

名称

CTS类型

说明

位数

decimal

System.Decimal

128位高精度十进制

28

decimal d = 1.2M;

  • bool类型

用于包含布尔值true和false

名称

CTS类型

说明

位数

bool

System.Boolean

true或者false

NA

注:bool类型不能和数值类型相互转换

  • 字符类型

名称

CTS类型

说明

位数

char

System.Char

表示一个16位Unicode字符

16

使用单引号表示单个字符

除了把char表示为字符字面量之外,还可以用4位十六进制的Unicode值如'\u0041'带有数据类型转换的整数值(char)65,或者十六进制数'\x0041'来表示他们。

转义序列

转义序列

字符

\'

单引号

\"

双引号

\\

反斜杠

\0

\a

警告

\b

退格

\f

换页

\n

换行

\r

回车

\t

水平制表

\v

垂直制表

 

引用类型

名称

CTS类型

说明

object

System.Object

根类型

string

System.String

Unicode字符串

string s = @"a\a"; @表示将后面的字符看成原来的意思

 

9,流控制

if(condition) statement(s);//condition必须为bool类型

 

switch…case

case值必须为常量表达式,不允许使用变量。可以把常量字符串用做测试变量。

必须使用break,除非case语句为空。

 

10,循环

for,while,do..while循环和C/C++相同

foreach循环:支持IEnumerable接口的对象。

例:

int[] a = {1,2,3,4,5};

foreach(int i in a)

{

//operation

}

每次迭代集合中的一个元素,不能改变元素。

 

11,跳转语句

goto:

goto Label1;

Lable1:

statements;

goto不能跳转到循环中,不能跳出类,不能退出finally

 

break

用于退出switch,for,foreach,while,do…while循环

continue

跳过当前迭代,用于for,foreach,while,do…while

return:返回

 

12,枚举

public enum A

{

    a = 0,

    b = 1,

    c = 2

}

 

13,数组

所有数组均为引用类型

声明:int[] a = new int[10];

 

14,命名空间

命名空间可嵌套。

不允许在另一个声明的命名空间中声明多部分的命名空间。

使用using语句引入命名空间。

使用using alias = NameSpace;声明命名空间的别名。

 

15,Main方法

Main方法的返回值必须为int或者void,使用string[] args输入参数。可以使用多个Main方法,编译时使用/main开关指定Main方法。

 

16,编译文件

使用/t或者/target选项指定文件类型,

/t:exe:控制台程序

/t:library:带清单的类库

/t:module:不带清单的类库

/t:winexe:Windows应用程序

/out:指定文件名

/out和/target必须位于文件名前。

 

17,控制台I/O

格式化结果:{n,w:Pm};

n:参数索引

w:宽度值,正值表示右对齐,负值表示左对齐,实际长度大于n无效

P:格式选项

m:精度

 

18,预处理指令

#define/#undef

 

条件编译:

#if

#elif

#else

#endif

 

#warning/#error

 

#pragma:抑制或者恢复警告

posted @ 2016-03-14 16:55  我是一个NLPer哦啦啦  阅读(291)  评论(0编辑  收藏  举报