`

C#学习笔记——面向过程

 
阅读更多

基本数据类型

 

类型

别名

允许的值

 

 

 

整数型

 

 

sbyte

System.Sbyte

-128~127

byte

System.Byte

0~255

short

System.Int16

-23768~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

 

double

System.Double

 

decimal

System.Decimal

 

 

 

 

字符型

 

 

char

System.Char

Unicode065535的整数

 

 

 

布尔型

 

 

bool

System.Boolean

true  false

 

 

 

字符串

 

 

string

System.String

一组字符

 

运算符

 

 

布尔运算符:==,!=,<><=>=!&|^&&||

位运算符:&^,~和|是对位进行操作的。

布尔赋值运算符:&=|=^=

位移运算符:>><< 左移几位实际上就是乘以几次2,右移几位就是除以几次2,并舍弃余数。

位移赋值运算符:>>=<<= 

 

 

 

优先级

类别

运算符

1

基本

(x)  x.y  f(x)  a[x]  x++  x--  new  typeof  sizeof  checked  unchecked

2

单目

+  -  !  ~   ++x  --x  (T)x

3

乘法与除法

*  /  %

4

加法与减法

+  -

5

移位运算

<<  >>

6

关系运算

<  >  <=  >=  is

7

条件等

= =  ! =

8

位逻辑与

&

9

位逻辑异或

^

10

位逻辑或

|

11

条件与

&&

12

条件或

||

13

条件

?:

14

赋值

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

 

三元运算符

<test>?<resultIfTrue>:<resultIfFalse>

 

 

变量的作用域

变量有一个作用域,在这个作用域中,变量是有效的。

这个作用域包括定义变量的代码块和直接嵌套在其中的代码块。函数中的代码块与定义它们的代码块是不同的。 全局变量是在函数外定义的,是在program程序段里定义的,在各个函数中都有效。 全局变量的名称如果和函数中的变量名称一致,那么在函数中要用program加变量名引用。如:program.myInt。如果不用这种方式引用,那么将被认为是局部变量。

 

其他结构中的变量的作用域

在循环内部定义或初始化的变量不能在循环外面使用,即在循环中定义或初始化的变量是循环的局部变量。

即使变量是在循环外面定义的,但是在循环内部初始化的,循环结束后,该变量仍然会改变为未初始化的状态,还需要重新初始化。

 

命名空间

 

namespace 空间名称
{

}

 

 

内嵌命名空间

 

namespace 空间名称
{

}
 

 

流程控制

 

goto语句

给代码加上标签,goto语句直接跳转到该标签的代码。

 

goto <labelName>;

 

 例:

 

int x=5;
goto myLabel;
x++;
myLabel:
Console.WriteLine(“myInteger={0}”,x);

 

 

条件语句

if语句

 

if(<test>)
    <code>
 

 

if(<test>)
    <code>
else
    <code>
 

 

if(<test>)
{
    <code>
}
else
{
    <code>
}

 

 

if(<test>)
{
    <code>
}
else if(<test>)
{
    <code>
}
else
{
    <code>
}
 

 

 

switch语句

 

switch(<testVar>)
{
    case <comparisonVal1>:
        <code>
        break;
    case <comparisonVal2>:
        <code>
        break;
    …
    case <comparisonValN>:
        <code>
        break;
    default:
        <code>
        break;
}

 

 

C#的case中的break是必须的。否则会报错。

C#的case可以配合goto一起使用,而使得case进入另一个case。

 

 

循环语句

 

do
{
   <code>
}
while(<Test>);
 

 

while(<Test>)
{
   <code>
}

 

for(<initialization>;<condition>;<operation>)
{
    <code to loop>
}

 

 

循环的中断

break

continue

goto

return

 

 

类型转换

隐式转换

 

显式转换

 

Convert命令

 

 

复杂的变量类型

1.枚举

enum<typeName>
{
    <value1>,
    <value2>,
    …
    <valueN>
}

 

 

2. 结构

 

struct <typeName>
{
   <memberDeclarations>
}

 

例:

 

struct route
{
public orientation direction;
public doubledistance;
}

route myRoute;

myRoute.direction=
myRoute. distance=2.5;

 

 

数组

声明数组

 

<baseType>[] <name>;

 

 

赋初值

 

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

 

foreach循环

 

foreach(<baseType> <name> in<array>)
{
   //
}
 

 

多维数组

也称为矩形数组

二维数组

 

 <baseType>[,] <name>;
 

 

多维数组

 

<baseType>[,,,] <name>;
 

 

 

double[,] hillHeight=new double[3,4];

double[,]hillHeight={{1,2,3,4},{2,3,4,5},{3,4,5,6}};   //三行四列

 

 

数组的数组

声明

 

int[][] jaggedIntArray;
 

 

初始化

 

jaggedIntArray=new int[2][];
jaggedIntArray[0]=new int[3];
jaggedIntArray[1]=new int[4];

 

 

 

字符串处理

string myString=”A string”;

string可以看作char的只读数组。

char myChar=myString[1];

 

string myString=”A string”;

char[] myChars=myString.ToCharArray();

 

 

函数

函数访问修饰符  返回值类型  函数名称(参数列表)

{

    函数体

}

 

 

static <returnType><functionName>()

{

return<returnValue>;

}

 

 

例:

static void Write()

{

 

}

 

 

 

Main()函数

C#入口点。

 

static void Main()
{

}

 

 

static void Main(string[] args)
{

}

 

 

static int Main()
{

}

 

 

static int Main(string[] args)
{

}

 

 

 

 

 

委托

一种可以把引用存储为函数的类型。委托类似与函数指针类似。

 

delegate double ProcessDelegate(doubleparam1,double param2);

关键字  返回类型 委托名称(参数)

 

static double Multiply(double param1,doubleparam2)

{

   return param1*param2;

}

 

static double Divide(double param1,doubleparam2)

{

   return param1/param2;

}

 

 

使用委托类型声明变量

ProcessDelegate process;

 

初始化委托变量

process=new processDelegate(Multiply);

process=new processDelegate(Divide);

 

可以使用简单语法

process= Multiply;

process= Divide;

 

 

委托变量作函数参数

static void ExcuteFunction(ProcessDelegateprocess)

{

   process(2.2,2.3)

}

 

 

Lambda表达式

=>左边为参数,右边为函数体

x=>x*x

 

也可以使用{} 或 return

y=x =>{

    return x*x;

}

 

 

 

 

异常处理

try语句

 

try
{
}
catch(<exceptionType> e)
{
}
finally
{
}
 

 

ThrowException()函数,调用时使用参数排除异常

ThrowException("none")  不抛出异常

 

 

 

列出和配置异常

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics