在C++/CLI項目中我有方法void DoSomething(long x);
。如果我想在使用C#編寫的任何單元測試中使用它,則方法參數x
顯示爲類型int
。在C++/CLI和C#中輸入「long」有什麼區別?
爲什麼我必須將簽名更改爲void DoSomething(long long x);
才能在我的單元測試(C#)中將它與參數類型long
一起使用?
在C++/CLI項目中我有方法void DoSomething(long x);
。如果我想在使用C#編寫的任何單元測試中使用它,則方法參數x
顯示爲類型int
。在C++/CLI和C#中輸入「long」有什麼區別?
爲什麼我必須將簽名更改爲void DoSomething(long long x);
才能在我的單元測試(C#)中將它與參數類型long
一起使用?
在C#long
是一個64位數據類型。在C++中我們所知道的關於long
的是它必須保存多於或多於int
,並且它至少是32位。如果您在C++中使用long long
,並且保證至少有64位,這將與您在C#中的匹配。
long
是C#和C++中的關鍵字。他們根本不是指同一件事。由於C++是目標互操作語言,因此C++/CLI設計人員進行了C++解釋。
不完全是唯一的非直觀映射:
當心所需public
關鍵字用於枚舉,由於C++ 11必要的惡通過的enum class
語法。
只有void,bool,short,int,float和double關鍵字匹配。
謝謝。你能提供一個鏈接到這些信息嗎? –
不,這是原創作品,不能複製任何內容。您必須閱讀整個語言規範才能找到返回的內容Emca-372。我們在這裏創建引用,只是重新發布現有內容。 –
謝謝你的解釋。是什麼意思,如果我們編寫其他組合,例如'long int x'? –
@ChristianSt。在C++中,'long'和'long int'沒有區別。 「長」是寫它的簡寫方式。 http://stackoverflow.com/questions/18971732/difference-between-long-long-long-long-int-and-long-long-int-in-c – NathanOliver