C#入门经典(基础部分一)

1.1     什么是.NET Framework

.NET FrameworkMicrosoft为开发应用程序创建的一个平台。通过它可以创建Windows应用程序、Web应用程序、Web服务和其他类型的应用程序。

1.2     .Net Framework的内容

.Net Framework主要包含一个非常大的代码库。它定义了一些基本类型,称为通用类型系统(Common Type System, CTS),它还包含了.NET 公共语言运行时(Common Language Runtime, LCR)它负责管理用.NET库开发的所有应用程序的执行。

1.3     什么是C#

C#是可用于创建要运行在.NET CLR上的应用程序语言之一。

1.4     执行程序

F5启动调试

Ctrl+F5 不调试,直接运行

 

1.5     简单数据类型

这些类型中的每一种都利用了.NET Framework中定义的标准类型。

C#中这些类型的名称是.NET Framework中定义的别名。

 

(整数)

类型

别名

允许的值

sbyte

System.SByte

[-128, 127]

byte

Syste.Byte

[0, 255]

short

System.Int16

[-32767, 32767]

ushort

System.UInt16

[0, 65535]

int

System.Int32

[-2147483648, 2147483647]

uint

System.UInt32

[0, 4294967295]

long

System.Int64

[-9223372036854775808, 9223372036854775807]

ulong

System.UInt64

[0, 18446744073709551615]

 

(浮点数)

类型

别名

最小值

最大者

float

System.Single

1.5*10(-45)

3.4*10(38)

double

System.Double

5*10(-324)

1.7*10(308)

decimal

System.Decimal

1.0*10(-28)

7.9*10(28)

除了数值类型外,还有三种简单数据类型:

类型

别名

允许的值

Char

System.Char

一个Unicode字符,0-65535之间的整数

bool

System.Boolean

布尔值:truefalse

string

System.String

一组字符

 

1.6     变量的命名

基本的变量命名规则如下:

l  变量名的第一个字符必须是字母,下划线或者@

l  其后的字符可以是字母、下划线或数字

 

命名约定:

.NET Framework名称空间中有两种命名约定,称为PascalCasecamelCase

PasscalCase约定:名称中的每个单词除了第一个字母大写外,其余都是小写

camelCase约定:第一个单词以小写字母开头

 

1.7     字面值

类型

类别

后缀

范例/允许的值

Bool

布尔

true/false

int,uint,long,ulong

整数

100

uint,ulong

整数

u/U

100U

long ulong

整数

l/L

100L

ulong

整数

Ul,uL,Ul,UL,lu,lU,Lu,LU

100UL

float

实数

f/F

1.5F

double

实数

无或d/D

1.5

decimal

实数

m/M

1.5M

char

字符

‘a’或转义序列

string

字符串

“a…”

 

1.8     字符串的字面值

下表为可以在字符串的字面值中使用的转义序列

转义序列

产生的字符

Unicode

/’

单引号

0x0027

/”

双引号

0x0022

//

反斜杠

0x005C

/0

0x0000

/a

警告(响鸣)

0x0007

/b

退格

0x0008

/f

换页

0x000C

/n

换回

0x000A

/r

回车

0x000D

/t

水平制表符

0x0009

/v

垂直制表符

0x000B

也可以逐字地指定字符串,即两个双引号之间的所有字符都包含在字符串中,包括行末字符和需要转义的字符。

 

如:”Karli/’s name”

   @”Karli’s name”

 

1.9     变量声明和赋值

变量在使用前,必须被初始化,否则编译将出错。可以先定义变量然后赋值,也可以定义的时候就赋值。

 

2.0 数学运算符

         5个简单的数学运算符,其中2个有一元和二元两种形式。

        

运算符

类别

范例

结果

+

二元

var1=var2+var3;

求和后将结果赋值给var1

-

二元

var1=var2-var3;

相减后将结果赋值给var1

*

二元

var1=var2*var3;

相乘后将结果赋值给var1

/

二元

var1=var2/var3;

相除后将结果赋值给var1

%

二元

var1=var2%var3;

求余后将结果赋值给var1

+

一元

var1= +var2;

var1的值等于var2的值

-

一元

var1= -var2;

var1的值等于var2的值乘-1

 

         递增递减运算符

运算符

类别

范例

结果

++

一元

var1= ++var2;

var1的值是var2+1 var2递增1

--

一元

var1= --var2;

var1的值是var2-1 var2递减1

++

一元

var1= var2++;

var1的值是var2  var2递增1

--

一元

var1= var2--;

var1的值是var2  var2递减1

 

         赋值运算符

运算符

类别

范例

结果

=

二元

var1=var2;

var1被赋值为var2的值

+=

二元

var1+=var2;

var1 = var1 + var2;

-=

二元

var1-=var2;

var1 = var1 – var2;

*=

二元

var1*=var2;

var1 = var1 * var2;

/=

二元

var1/=var2;

var1 = var1 / var2;

%=

二元

var1%=var2;

var1 = var1 % var2;

 

         运算符优先级

优先级

运算符

优先级由高到低

++, --(用作前缀), +, -(一元)

* , /, %

+, -

==, *=, /=, %=, +=, -=

++, --(用于后缀)

 


流程控制

 

1.  布尔逻辑

六个比较运算符:== != < > <= >=

四个位运算符:& | ^ ~

四个布尔运算符:! & | ^

两个布尔运算符:&& ||

两组布尔运算符计算的结果一样。只是后者性能较好!作为一个规则,尽可能使用&&||运算符。

 

2.      移位运算符

         >> 右移操作符

         << 左移操作符

 

3.      布尔赋值运算符

         &= |= ^=

 

4.      移位赋值运算符

         >>= <<=

 

5.      运算符优先级

优先级

运算符

优先级由高到低

++--(用作前缀),(),+-(一元),!,~

*/%

+-

<<>>

<><=>=

==!=

&

^

|

&&

||

=*=/=%=+=-=<<=>>=&=^=|=

++--(用作后缀)

 

6.      分支

         C#提供三种分支技术:三元运算符、if语句、switch语句

 

         switch语句和C++是有区别的,在C++中,可以运行完一个case后,运行另一个case语句。C#中每个case后必须有break语句,default后也需要用break语句。

         不过这一规则可以有一个例外:如果把多个case语句放在一起(堆叠他们),如

         switch(<testVar>)

         {

         case a:

         case b:

                  

                   break;

         default:

                  

                   break;

         }        则只要条件满足a或者b都会执行b后面的语句。

 

7.      循环

         do…while语句,while语句,for语句用法和C++一样。


变量的更多内容

1.       类型转换

a.隐式转换

b.显式转换

 

2.       枚举的定义:

enum typeName

{        

value1,

value2,

value3…

valueN

}

接着声明这个新类型的变量:typeName varName;

并赋值:varName = typeName.value;

 

枚举使用一个基本类型类存储。默认情况下该类型为int。在枚举声明中添加类型,可以指定其他基本类型:

enum typeName : underlyingType

{        

value1,

value2,

value3…

valueN

}

枚举的基本类型可以是byte,sbyte,short,ushort,int,uint,long,ulong

默认情况下,每个值会根据定义的顺序(从0开始)自动赋给对应的基本类型值。

 

要获得枚举变量的值,可以用显式类型转换

要获得枚举变量的字符串值,可以使用Convert.ToString()或者用变量本身的ToString()命令。

 

可以把string转换为枚举值,但语法较复杂:

(enumerationType)Enum.Parse(typeof(enumerationType), enumerationValueString);

例子:

string myString = “north”;

orientation myDirection = (orientation)Enum.Parse(typeof(orientation), myString);

 

3.       结构

使用struct关键字来定义

struct <typeName>

{

           <memberDeclarations>

}

<memberDeclarations>部分包含变量的定义,格式与往常一样。每个成员的声明采用如下形式:

<accessibility> <type> <name>;

要让调用结构的代码访问该结构的数据成员,可以对accessibility使用关键字public

 

4.       数组

声明数组:

<baseType> [] <name>

其中<baseType>可以是任何变量类型,包括前面介绍的枚举和结构类型。

 

数组在访问前必须初始化。有两种方式可初始化数组:

int[] myIntArray = {5,9,10,2,88};

int[] myIntArrat = new int[5];

也可以使用非常理的变量来初始化:

int[] myIntArray = new int[arraySize];

 

还可以用两种初始化方式的组合:

int[] myIntArray = new int[5]{5,9,10,2,88};

使用这种方式,数组大小必须与元素个数匹配,不能编写如下代码:

int[] myIntArray = new int[10]{5,9,10,2,88};

 

如果这种组合方式用变量来定义大小,则会编译失败。大小必须用一个常量:

const int arraySize = 5;

int[] myIntArray = new int[arraySize[] {5,9,10,2,88};

 

for each遍历数组元素的语法:

foreach(<baseType> <name> in <array>)

{

}

 

string[] friendsName = {“Robert Barwell”, “Mike Parry”, “Jeremy Beacock”};

foreach(string name in friendsName)

{

           Console.writeLine(“Name is {0}”, name);

}

使用这种方法和标准for循环访问数组的区别是foreach循环对数组的内容是只读的,不能改变任何元素的值。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值