C#学习笔记——面向过程
基本数据类型
?
?
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")? 不抛出异常
?
?
?
列出和配置异常
?
?