C++编程人员容易犯的10个C#错误
2004-02-14 09:34 出处:中国计算机报 作者:刘彦青 责任编辑:ycx
要实现上面代码的目的,需要使用一个goto语句: switch (i) { case 4: CallFuncOne(); goto case 5; case 5: CallSomeFunc(); } 如果case语句不执行任何代码,则所有的语句都会被执行。如下面的代码: switch (i) { case 4: // 能执行到 case 5: // 能执行到 case 6: CallSomeFunc(); } 错误10:C#中的变量要求明确地赋值 在C#中,所有的变量在使用前都必须被赋值。因此,可以在定义变量时不对它进行初始化,如果在把它传递给一个方法前,必须被赋值。 如果只是通过索引向方法传递一个变量,并且该变量是方法的输出变量,这是就会带来问题。例如,假设有一个方法,它返回当前时间的小时、分、秒,如果象下面这样编写代码: int theHour; int theMinute; int theSecond; timeObject.GetTime( ref theHour, ref theMinute, ref theSecond) 如果在使用theHour、theMinute和theSecond这三个变量之前没有对它们进行初始化,就会产生一个编译错误: Use of unassigned local variable 'theHour' Use of unassigned local variable 'theMinute' Use of unassigned local variable 'theSecond' 我们可以通过将这些变量初始化为0或其他对方法的返回值没有影响的值,以解决编译器的这个小问题: int theHour = 0; int theMinute = 0; int theSecond = 0; timeObject.GetTime( ref theHour, ref theMinute, ref theSecond) 这样就有些太麻烦了,这些变量传递给GetTime方法,然后被改变而已。为了解决这一问题,C#专门针对这一情况提供了out参数修饰符,它可以使一个参数无需初始化就可以被引用。例如,GetTime中的参数对它本身没有一点意义,它们只是为了表达该方法的输出。在方法中返回之前,Out参数中必须被指定一个值。下面是经过修改后的GetTime方法: public void GetTime(out int h, out int m, out int s) { h = Hour; m = Minute; s = Second; } 下面是新的GetTime方法的调用方法: timeObject.GetTime( out theHour, out theMinute, out theSecond); |
键盘也能翻页,试试“← →”键
最热搜索
无线路由器怎么用 会说话的汤姆猫电脑版 12306网上订火车票 跳舞吧 flash player 下载 PP助手电脑版 Adobe Reader(pdf阅读) iOS6正式版12项新功能 QQ空间克隆器 9158视频KTV 植物大战僵尸辅助工具 Win8怎么关机 QQ空间进不去 2013年春节是几月几号 QQ昵称 QQ空间皮肤 PPT模板 电脑输入法不见了怎么办 2012中秋节是几月几日 word安全模式 qq输入法怎么点亮 IE修复 感恩节是几月几日 CSS布局 PS快捷键 Outlook设置 声卡驱动器官方免费下载 格式工厂怎么用 桌面图标有阴影怎么去掉 Windows RT是什么意思 2013年日历设计 Word打不开怎么办 Win8专区 腾讯微云网 windows8激活工具 剑灵什么时候公测 QQ通讯录怎么用 开心斗地主 拖拉机小游戏 麻将游戏 中国象棋 德州扑克 黄金矿工中文版 保皇扑克游戏 四国军棋 万圣节是几月几日 ps抠图教程 12306订票助手 万圣节小游戏大全 rar文件怎么打开 Photoshop CS6教程 iOS6完美越狱 QQ个性签名