91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C++中CLI模塊的基本語法是什么

發布時間:2022-07-04 13:41:11 來源:億速云 閱讀:196 作者:iii 欄目:開發技術

本文小編為大家詳細介紹“C++中CLI模塊的基本語法是什么”,內容詳細,步驟清晰,細節處理妥當,希望這篇“C++中CLI模塊的基本語法是什么”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學習新知識吧。

托管對象的創建和引用

在前文中我們已經演示過創建一個托管對象,對于如下C#代碼:

System.Object x = new System.Object();

其在C++/CLI中的等價代碼如下:

System::Object^ x = gcnew System::Object();

和傳統的C++創建的語法比較下,

P* x = new P();

我們不難發現,對于托管對象,主要引入了如下兩個語法:

  • 用gcnew代替new實現托管對象的創建

  • 用^代替*實現托管對象的指針

這種方式創建的對象是可以直接被CLR支持的,可以在C#中使用。托管對象指針使用的方式和傳統的對象指針還是比較類似的,直接使用->即可:

System::Object^ x = gcnew System::Object();
auto str = x->ToString();

另外,C++/CLI也有一種類似于C++的對托管對象的引用的語法:

System::Object^ x = gcnew System::Object();
System::Object% y = *x;
auto str = y.ToString();

由于這種方式在C#里沒有對應的語法,用起來感覺怪怪的,也不方便于其它.net語言集成。

托管類型的定義

我們也可以自定義托管類型,在CLR中,托管類型是分為引用類型(class)和值類型(struct)的,在C++/CLI中的分別定義方式如下:

引用類型:

public ref class MyClass
{
};

值類型:

public value class MyClass
{
};

在ISO C++中類定義中加上了ref或value標記為托管類型,還算比較容易使用。

枚舉

枚舉的定義和C++11的enum class一樣,它像數字那樣可以同時應用于托管類型和非托管類型。

public enum class SomeColors { Red, Yellow, Blue };

或者更精確的表示:

public enum class SomeColors : char { Red, Yellow, Blue };

數組

C++/CLI中新增了array<T> ^的方式定義數組。

array<int> ^a = gcnew array<int>(100) { 1, 2, 3 };

或者使用它的完整版:

cli::array<int> ^a = gcnew cli::array<int> {1, 2, 3};

不定參數

對于C#中的不定參數的語法:

void foo(params string[] args)

在C++/CLI中對應的版本為:

void foo(... array<String^>^ args)

讀到這里,這篇“C++中CLI模塊的基本語法是什么”文章已經介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領會,如果想了解更多相關內容的文章,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

岫岩| 富阳市| 临潭县| 万荣县| 蕲春县| 青海省| 壶关县| 衢州市| 松阳县| 绥化市| 屏东县| 福贡县| 吴川市| 微博| 云梦县| 高碑店市| 舞阳县| 乐都县| 鸡西市| 邛崃市| 碌曲县| 奈曼旗| 西平县| 高要市| 蓬安县| 大化| 乌苏市| 山西省| 通辽市| 昌邑市| 巴塘县| 大足县| 扶绥县| 桃江县| 济源市| 淮北市| 永春县| 扎兰屯市| 高雄县| 商河县| 霍城县|