Skip to content

🔍 1.1.5 变量声明

声明变量的骚操作

在整数小节里面,我们说过不能在声明变量之前使用它。所以,这样是不行的:(记住下面的案例,待会要考。就叫它“例1”吧。)

例1
1
2
3
int a = 10;
b = a;
Console.WriteLine(b);

因为第2行是不完整的声明,只说了变量b却忘了说它的类型。需要告诉编译器,b也是一个整数变量:

int a = 10;
int b = a;
Console.WriteLine(b);

哦,对了。也可以同时声明多个变量。像这样:

1
2
3
4
int a, b;
a = 10;
b = a;
Console.WriteLine(b);

第1行表示ab都是整数变量,从第2行开始对它们进行操作。甚至还有更激进的方案:

int a = 10, b = a;
Console.WriteLine(b);

什——么——这样写居然没报错!但仔细观察,其实第1行的本质依然是通过 int a, b; 这种方法一次性声明了2个变量,只不过在声明的同时对它们进行赋值了而已,效果等价于上一种写法。

Note

在编写你的代码时,请一行只声明一个变量,因为这样方便阅读,不易出错。本节讲的这几种(奇技淫巧)写法仅供了解。这也是它只在小数点小节而不是整数小节出现的原因!

但是,接下来我要对它进行很邪恶的改动:

1
2
3
int a = 10,
b = a;
Console.WriteLine(b);

我只是在第1行的 a = 10, 后面按了一下回车而已。虽然把原本的一行一分为二,但是记得我们强调过的:对C#来说,分号 ; 才是一句话的结束。所以前两行仍然是同一句话,运行效果也和上一个案例完全一样。

但恐怖之处在于,现在这个正确的程序和之前错误的“例1”几乎完全一样(实际上只有“一点”差别:第1行末尾的分号比逗号多了一个点)!

在编写代码时,千万不能写像这种正确但误导性极强的代码,这种做法不值得学习,保持程序的可读性非常重要!就像专业的数学家不会写 1+1+1
1+1=14 这种在11中间换行的误导性算式一样。


编程思维1:KISS原则

一般来说,越复杂的机器越容易坏。而且维修起来也更麻烦。

大部分人写代码的首要目标是实现某种需求、解决某个实际问题,而不是炫技。KISS(Keep it simple, stupid.)原则提醒我们,写简洁、直白的代码,保证项目易懂、好维护、低出错。


Tab 提高可读性

不知你是否记得,我们在上一节中知道了注释和空行可以帮助提高代码的可读性。下面我要介绍一种新的方法:制表符( Tab )。只需进行一点改动:

1
2
3
int a = 10,
    b = a;
Console.WriteLine(b);

没错,就是在第2行开头摁了一下 Tab 键而已,这样读者就能知道第2行其实是第1行的延续,而不会误认为是一个新的语句。同时,两个变量ab在垂直方向上也对齐了,看起来更加清楚直白。TAB在后面将会继续出场,扮演着重要的作用。