标签:
和C++,java一样,C#支持常用的if,while,do while,for,switch语句,具体语法不在赘述,但他们在C#中有一些用法和其他的语言不同:
(1)在C#中,if子句中的表达式必须等于布尔值。不能直接测试整数(如:从函数中返回的值 ,必须明确地把返回的整数转换为布尔值ture或false,例如,将值
与0或null进行比较:
if(dosomething()!=0)
{
//Non-zero returned
}
else
{
//return zero
}
(2)在C#中,可以把字符串用作测试的变量。这和其他语言中的switch语句不同。比如:
string testStr = func2();
switch(testStr)
{
case "for you":
Console.WriteLine("for you");
break;
case "for everyone":
Console.WriteLine("for everyone");
break;
default:
Console.WriteLine("error!");
break;
}
另外 ,C#的switch中每个case后面都可以为空或者加break,并且可以使用goto在各个case之间进行跳转,例如:
int tsetnum=3;
switch (testnum)
{
case 2;
testnum=6;
goto case 3;
case 3:
testnum=9;
default:
break;
}
但是一般不建议使用goto语句,因为它会造成混乱,使程序不容易调试。
另外,由于C#出现要晚于其他的很多语言,所以其中有许多新的语法语句,常用的有以下几种:
(1)foreach语句
下面的代码中可以了解foreach循环的语法,其中假定arrayOfInts是一个整型数组:
foreach(int temp in arrayOfInts)
{
Console.WriteLine(temp);
}
其中,foreach循环每次迭代数组中的一个元素。它把每个元素的值放在整型的变量temp中进行输出遍历。当变量类型不确定时,可以使用类型推断功
能。这种用法会更多见一些。此时,foreach循环变成 :
foreach(var temp2 in arrayOfValues)
{
Console.WriteLine(temp2);
}
注意,foreach循环不能改变集合中各项(上面的temp)的值,所以下面的代码不会编译:
foreach(var temp2 in arrayOfValues)
{
temp++;
Console.WriteLine(temp2);
}
如果需要迭代集合中的各项,并改变它们的值,就应使用for循环。
(2)枚举类型enum
枚举是用户定义的整数类型。在声明一个枚举时,要指定该枚举的实例可以包含的一组可接受的值。不仅如此,还可以给值指定易于记忆的名称。如果在
代码的某个地方,要试图把一个不在可接受范围内的值赋予枚举的一个实例,编译器就会报告一个错误。从长远来看,创建枚举可以节省大量时间,减少许多麻烦。
public enum KindsOfSeason{
Spring = 1;
Summer = 2;
Autumn = 3;
Winter = 4;
}
本例在枚举中使用一个整数值来表示四季。现在可以把这些值作为枚举的成员来访问。例如, KindsOfSeason.Spring返回数字1。使用这个枚举一般
是把合适的值传送给方法。
在C#中,枚举的真正强大之处是它们在后台会实例化为派生于基类System.Enum的结构。这表示可以对它们调用方法,执行有用 的任务。注意因
为.NET FrameWork的执行方式,在语法上把枚举表示可以对它们调用方法,执行有用的任务。
System.Enun上的其他方法可以返回枚举定义中的值的个数或列出值的名称等。
C#中的一些常见的新语句语法就先为大家介绍到这,这些其实只能算C#语句中的一小部分,其他的需要在实际读写程序的过程中去学习积累。
下一篇博客将为大家介绍C#的对象与类。
标签:
原文地址:http://www.cnblogs.com/cht-inu/p/4452910.html