我正在阅读此帖子https://stackoverflow.com/questions/268538/tab-versus-space-indentation-in-c-sharp重新标记Tab与空格缩进。线索的道德导致“缩进的标签,对齐的空间”。你能用一些代码示例解释我缩进意味着什么,空格意味着什么代码?我只是对代码上下文中的两件事感到困惑?
答案 0 :(得分:2)
该线程的示例:
switch(foo)
{
case bar: Do1(); break;
case foobar_2: Do2(); break;
}
此处,关键字'案例'是缩进的。 "栏:"和" foobar_2:"与左边对齐。
您可以想象有一个框,其中相同的单词可以左对齐或右对齐。左:
switch(foo)
{
case bar: Do1(); break;
case foobar_2: Do2(); break;
}
右:
switch(foo)
{
case bar: Do1(); break;
case foobar_2: Do2(); break;
}
由于不同的标签配置,如果使用标签完成这种事情会变得混乱,空格必须在这里。但是,使用不同的标签宽度配置,缩进就像这样:
switch(foo)
{
case bar: Do1(); break;
case foobar_2: Do2(); break;
}
这更像是一个偏好问题,因为它不会弄乱哪一行符合什么。
答案 1 :(得分:1)
在Java code convention中,它建议始终使用空格。这在每个编辑器中都显示相同的缩进,并且比混合制表符/空格方法更简单。
答案 2 :(得分:1)
在这里你可以看到一个对齐的例子 - 条件被对齐为一个在另一个之下。一般情况下,您无法通过标签实现此目的,因为
a)如果标签大小为2或4,则表示无法用标签表示3个空格
b)即使您计算机上的标签大小为3并且您设法与标签对齐,另一个人可能会有不同的标签大小,并且排列会中断(条件不会是另一个。
答案 3 :(得分:0)
public class SwitchDemo {
public static void main(String[] args) {
int month = 8;
String monthString;
switch (month) {
case 1: monthString = "January";
break;
case 2: monthString = "February";
break;
case 3: monthString = "March";
break;
case 4: monthString = "April";
break;
case 5: monthString = "May";
break;
case 6: monthString = "June";
break;
case 7: monthString = "July";
break;
case 8: monthString = "August";
break;
case 9: monthString = "September";
break;
case 10: monthString = "October";
break;
case 11: monthString = "November";
break;
case 12: monthString = "December";
break;
default: monthString = "Invalid month";
break;
}
System.out.println(monthString);
}
}
线条上的缩进是用制表符制作的 switch-case语句中的对齐是用空格完成的。
ttttttttttttttttcase 9:ssmonthString = "September";
ttttttttttttttttttttttttsbreak;
ttttttttttttttttcase 10:smonthString = "October";
ttttttttttttttttttttttttsbreak;
tttt
代表一个标签
s
代表一个空格