错误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();
}
更多内容请看C/C++技术专题、Java编程开发手册专题,或进入讨论组讨论。
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();
}
- 用Photoshop给漂亮的烫发MM抠图
- Photoshop透明婚纱抠图大法
- Photoshop:让MM做个“变色龙”
- 用Photoshop来制作一款精美的宝宝照片墙
- Photoshop绝色美女通道抠图法
- 用Photoshop教你打造绚丽光芒效果
巧巧读书:http://www.qqread.com/vc/p320577020.html
相关图文阅读
频道图文推荐
健 康 咨 询
时 尚 咨 询
相关专题
- C/C++技术专题 (1637篇文章)
- Java编程开发手册 (8276篇文章)
- 探析C#文件方式读写结构体 (13次浏览)
- C#变得越来越臃肿是不可避免的? (7次浏览)
- C#与EXCEL的数据交互(一) (5次浏览)
- C# 3.0新特性之扩展方法 (1次浏览)
- 利用 C# 实现任务栏通知窗口 (0次浏览)
- 深入C#学习系列之不可小瞧的using关键字 (0次浏览)
- 如何用.NET技术在线生成网站LOGO (0次浏览)
- C#实现遗传算法 模拟花朵的进化 (0次浏览)
- c#里的运算符重载 (0次浏览)
- QTP调用自己开发的.net类库 (0次浏览)



