2010-09-28 29 views
0

我的想法/建議,原因如下:爲C#打印關鍵字...爲什麼不呢?

1)Console.WriteXX()可能是更經常使用比許多關鍵字在C#
2)控制檯作爲I/O設備是不會消失的任何時間不久。
3)我不能想到任何通用編程語言,它不以某種形式提供「寫入控制檯」功能。
4)美觀(即清潔,簡單,短小,直接)
5)打印「你好」;不會讓我覺得我輸入的東西比需要的更多。每次我必須編寫Console.WritXX()...或者甚至在代碼中讀取它時,它都是一件苦差事。
6)它更接近C/C++家族的價值觀和爲基本文本提供特殊狀態的傳統I/O
7)很難想象未來的情景,當決定「打印」關鍵字時感到遺憾。 8)打印如{print「hello」; }代替print {print(「hello」);}不太可能破壞任何現有的代碼。

+0

不會真的認爲這是一件難事寫。如果您使用片段,則只需輸入cw + TAB即可。 – 2010-09-28 02:53:50

+1

爲什麼在所有其他人中挑出這個C#冗長的問題? – JasonFruit 2010-09-28 03:31:12

+0

控制檯類在覈心繫統名稱空間中有一個很好的理由。其他形式的I/O(Web,Winforms,文件I/O等)可能會隨着時間的推移而發生變化。但只要人類使用基於文本的通信,通用編程語言就可以安全地爲基於文本的控制檯I/O提供關鍵字。還有一個原因是許多其他主要通用語言(python,perl等)都有特定的關鍵字,而不是針對這些最基本I/O的庫調用。看看http://en.wikiversity.org/wiki/Hello,_world! – explorer 2010-09-28 06:13:06

回答

8

因爲C# 不僅是 一般不在控制檯中使用。無論是ASP.NET,WinForms還是WPF,在「打印」沒有任何意義的語言中都有很多用法。

+0

「因爲C#不僅在控制檯中使用」。對於任何通用編程語言也是如此。 – explorer 2010-09-28 02:56:37

+0

不是。 Python,Ruby,C,C++,Haskell ......它們沒有本地(如「默認安裝」)GUI包。他們使用控制檯作爲他們與用戶通信的主要手段。然而,C#中本地事件處理設施的存在似乎表明該語言實際上是打算在GUI中使用的(與微軟以前的產品VB6一致,甚至無法使用控制檯)。控制檯幾乎是.NET中的二等公民...... – 2010-09-28 03:16:03

+2

改寫:C#通常用於GUI環境,其中「print」沒有用處。 Perl,PHP,Python ......他們有一個「打印」的理由。 C#沒有 - 它已經具備了這個能力,它只是不如你想要的那麼漂亮。 – cHao 2010-09-28 03:16:48

1

爲什麼不創建一個alias System.out.WriteLine()來保存你的手腕?

using c = System.Console; 

c.WriteLine("Hello World"); 

或者在IDE中使用代碼片段?

Console.WriteLine是一個.NET Framework方法,因此所有.NET語言都一致地使用它。爲什麼要將其他關鍵字添加到只是衆多.NET語言之一的c#中?

+1

因爲這會讓你的代碼更難閱讀和維護。 – 2010-09-28 02:49:09

+0

'System.out.WriteLine'的LOL,你必須是Java程序員。 – 2010-09-28 02:54:31

+0

怎麼這樣?編譯器足夠聰明,你不需要明確地引用命名空間,如果你期望存在方法衝突,它是唯一的問題。 – burkestar 2010-09-28 02:58:24

0

打印過於籠統,無法描述真正發生的情況,它只適用於控制檯本身。有幾種不同的方法可以將信息輸出到各種接口,而WriteXX(就像你所說的)更能描述實際發生的事情。您不打印任何內容,您正在將其寫入界面。 C#被更多地描述了正在發生的事情,而不是鎖定其他語言的擱置。

4

在C#中我們有很多方法來輸出數據。如果您更改Console.Write進行打印,這很令人困惑,因爲程序員可能會問「打印到屏幕上?打印機?」。雖然使用Console.Write很清楚,但我們知道它正在將數據寫入Console。而且FileStream.Write讓我們知道它正在寫入一個文件。 A MemoryStream.Write正在寫入內存......這很好,不是嗎?那麼,爲什麼我們需要一個令人困惑的print

+0

完全同意。另外WinForm應用程序甚至沒有控制檯可以寫入!如果你需要的話,你需要顯式實例化一個。 – burkestar 2010-09-28 02:55:58