C++与C#在定义变量上的不同:
与C++不同,C#在类型的外部不能声明全局变量,所有字段都属于类型,而且必须在类型声明内部声明,同理也没有全局函数,C#中方法没有默认返回类型,所有方法必须包含返回类型或void。
C++与C#在嵌套块中的重名问题:
在C++中,可以声明一个本地变量,然后在嵌套块中声明另一个相同名称的本地变量,在内部范围,内部名称掩盖了外部名称,然而在C#中不管嵌套级别如何,都不能在第一个名称的有效作用域内声明另一个同名的本地变量
C#:
class Program
{
static void Main(string[] args)
{
int i = 10;
{
int i = 100;
}
}
}
C++:
int main()
{
int i = 10;
{
int i = 100;
cout << i << endl; //100
}
cout << i << endl; //10
}
类型推断var:
在C#中可以使用var进行类型推断,类似C++中的auto
var使用条件:
(1)只能用于本地变量,不能用于字段
(2)只能在变量声明中包含初始化时使用
(3)一旦编译器推断出变量的类型,它就是固定且不能更改的