最近有机会给人讲c#,初学者容易犯的一些错误,也许我们这些老鸟平时也会忽略。有时间就会整理一些放上来。
1. @的用法:
在很多语言之中,加@在变量前常常是指的取地址,c#中的@用在string变量前面,指的是忽略字符串中所有的转义符“/”。如:
console.writeln( "c://downloads//test.rar" );
与下面的语句相当:
console.writeln( @"c:/downloads/test.rar" );
2. convert.to* 与 var.to* 用法区别
以上两个函数都是显式地进行变量类型转换,一般用于无法隐式转换的变量,用法举例如下,注意它们的区别。
int intext = 1999;
string sttext = "";
sttext = convert.tostring( intext ); // convert的语法示例
sttext = intext.tostring(); // 注意变量直接to新类型的用法,后面的()是不可省的,这和有些语言不同
console.writeline( "this is convert test string: " + sttext );
3. c#的switch和c++的区别
语法:
switch(var)
{
case varvalue1:
<语句组>
break;
case varvalue2:
<语句组>
break;
......
case varvaluen:
<语句组>
break;
default: // default是可以省略的
<语句组>
break;
}
c#和c++的switch语法相同,但c++允许case语句向下贯穿,即省略break时,将继续执行下面的case语句组,而c#中禁止该用法。在c#的switch语句中,break是不能少的,但可以用goto case varvalue的方式跳过它,直接执行下面的case语句组。举例如下(可能例子不怎么符合逻辑,只是为了说明c#在switch中如何贯穿):
console.writeline( "this is convert test string: " + sttext );
int var1 = convert.toint32( console.readline() );
switch( var1 )
{
case 70:
console.writeline( "the number is 70 !/n" );
goto case 80; // 把case 80当成goto的label
break;
case 80:
console.writeline( "the number is 80 !/n", var1 );
goto default;
break;
default:
console.writeline( "the number is not 70 or 80 !/n");
break;
}
新闻热点
疑难解答