[英]Adding custom indentation for C# code in Visual Studio (not VS Code)
[英]Indentation vs alignment in code formatting
我正在閱讀這個帖子https://stackoverflow.com/questions/268538/tab-versus-space-indentation-in-c-sharp reagrding Tab與space indentation。 線索的道德導致“縮進的標簽,對齊的空間”。 你能用一些代碼示例解釋我縮進意味着什么,空格意味着什么代碼? 我只是在代碼的上下文中混淆了兩件事?
該線程的示例:
switch(foo)
{
case bar: Do1(); break;
case foobar_2: Do2(); break;
}
關鍵字'case'是縮進的。 “bar:”和“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;
}
這更像是一個偏好的問題,因為它不會弄亂哪條線匹配什么。
在Java代碼約定中 ,它建議始終使用空格。 這在每個編輯器中都顯示相同的縮進,並且比混合制表符/空格方法更簡單。
在這里你可以看到一個對齊的例子 - 條件被對齊為一個在另一個之下。 一般情況下,您無法通過標簽實現此目的,因為
a)如果標簽大小為2或4,則表示不能用標簽表示3個空格
b)即使計算機上的標簽大小為3並且您設法與標簽對齊,另一個人可能會有不同的標簽大小,並且對齊方式會中斷(條件不會是另一個。
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
代表一個空間
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.