什麼是C#中的int
?它是一個關鍵字,還是來自system.ValueTypes派生的類?如果它是一個關鍵字,然後怎麼做下面幾行編譯什麼是C#中的int?
int i = new int(); // If int is not a class then how does it have a default constructor
Console.WriteLine(i.ToString()); // If int is not a class then how does it have member functions
如果int
是一個類,那麼它爲什麼沒有必要總是new
初始化呢?以下行如何編譯?
int i = 8;
誰說「結構」或「價值型」 *不能*有方法?這是一些Java廢話說:)'int'是'System.Int32'這是'struct'類型。 (爲了使生活更簡單,編譯器知道各種「文字」結構,如整數,浮點值和字符串,但它是一個固定的集合,例如GUID沒有「literal」,所以'new Guid(string)是必需的。) – 2012-07-21 04:08:46
所有值類型都可以有方法,Java是愚蠢的例外。 – Ryan 2012-07-21 04:11:35
'int i = 8'編譯的原因與'string foo =「bar」'編譯的原因相同。 '8'是'int'類型的字面值,就像''bar「'是'string'類型的字面值。 – cdhowie 2012-07-21 04:12:08