C++编程人员容易犯的10个C#错误
2004-02-14 09:34 出处:中国计算机报 作者:刘彦青 责任编辑:ycx
错误7:类成员变量的初始化 C#中的初始化与C++中不同。假设有一个带有private性质的成员变量age的Person类,Employee是由继承Person类而生成的,它有一个private性质的salaryLevel成员变量。在C++中,我们可以在Employee的构造器的初始化部分初始化salaryLevel,如下面的代码所示: Employee::Employee(int theAge, int theSalaryLevel): Person(theAge) // 初始化基础类 salaryLevel(theSalaryLevel) // 初始化成员变量 { // 构造器的代码 } 这种方法在C#中是非法的。尽管仍然可以初始化基础类,但象上面的代码那样对成员变量初始化就会引起编译错误。在C#中,我们可以在定义成员变量时的同时对它进行初始化: Class Employee : public Person { // 成员变量的定义 private salaryLevel = 3; // 初始化 } 注意:必须明确地定义每个变量的访问权限。 错误8:布尔型变量与整型变量是两回事儿 if( someFuncWhichReturnsAValue() ) 在C#中,布尔型变量与整型变量并不相同,因此下面的代码是不正确的: if( someFuncWhichReturnsAValue() ) if someFuncWhichReturnsAValue返回零表示false,否则表示true的想法已经行不通了。这样的好处是原来存在的将赋值运算与相等相混淆的错误就不会再犯了。因此下面的代码: if ( x = 5 ) 在编译时就会出错,因为x=5只是把5赋给了X,而不是一个布尔值。 错误9:switch语句中会有些语句执行不到 在C#,如果一个switch语句执行了一些操作,则程序就可能不能执行到下一个语句。因此,尽管下面的代码在C++中是合法的,但在C#中却不合法: switch (i) { case 4: CallFuncOne(); case 5: // 错误,不会执行到这里 CallSomeFunc(); } |
键盘也能翻页,试试“← →”键
最热搜索
无线路由器怎么用 会说话的汤姆猫电脑版 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个性签名