C++/CLI中的預設屬性訪問
目前版本的VC2005測試版中,default關鍵字不僅用於指定類級別的索引器,而且也用於訪問預設屬性。但是奇怪的是,預設屬性的原名不能訪問了,也就是說,如果要把下面的程式碼段從託管C++移植到VC2005附帶的C++/CLI,不僅需要更改指標的型別,而且要把屬性的名稱更改為default:
//[System::Reflection::DefaultMemberAttribute("Fields")] interface _Recordset
//託管C++語法
//extern _Recordset* results;
Fields* ResultFields=results->Fields;
//C++/CLI語法
//extern _Recordset^ results;
Fields^ ResultFields=results->default;
如果繼續使用原來名字來訪問屬性的話,會報告編譯錯誤:
Fields^ ResultFields=results->Fields;//C3293: 'Fields': use 'default' to access the default property (indexer)。
這是一個Breaking Change。在語言規範中,預設索引屬性只使用一個名字“default”,而且只有這一個實現。更進一步,預設索引屬性只能用如下方式訪問:
- obj[index]
- obj->default[index]
- obj->default::get(index)
- obj->default::set(index, value)
參考
相關推薦
C++/CLI中的預設屬性訪問
目前版本的VC2005測試版中,default關鍵字不僅用於指定類級別的索引器,而且也用於訪問預設屬性。但是奇怪的是,預設屬性的原名不能訪問了,也就是說,如果要把下面的程式碼段從託管C++移植到VC2005附帶的C++/CLI,不僅需要更改指標的型別,而且要把屬性的名稱更改為
Unity 3D:訪問另一個C#類中的屬性或方法
在開發Unity 3D 遊戲的過程中,經常遇到在某個C#類中訪問另一個C#類中的方法或屬性;比如:在Eenmy.cs中訪問PlayAttack.cs指令碼中的TakeDamage(int damage
C++/cli中swtich處理命令列接收到的關鍵字
QQ群友中有人提出這樣一個問題: Swtich接受的是整形或列舉型別, 關鍵字多數是一個字元, 將string轉換成char就應該可以, 所以我試著寫了一下程式碼, 直接提取string的第一個字元, 沒想到居然可行。 如果關鍵字是多個字元, 通過巢狀swtich判斷第二個字元
QML與C++混合程式設計(二):QML獲得C++類中的屬性
QML獲得C++類中的屬性 QML可以輕鬆地用C++中定義的功能進行擴充套件。由於QML引擎和Qt元物件系統的緊密結合,QML可以獲取任意QObject派生類中的功能,這使得QML可以通過一些小的改動直接獲得C++中的資料和方法。 QML引擎可以通過
C語言中的生命週期,作用域,預設值,記憶體區域,連結屬性
1、全域性變數:定義在函式外部的變數 生命週期:從程式執行開始建立,程式退出銷燬; 作用域:從定義該變數開始一直到檔案的結束; 預設值:0; 記憶體區域:全域性(靜態)變數區; 連結屬性:外部(可以在其他檔案中引用)。 注意:全域性變數只需在一個原始檔中定義,就可以作用
《隨筆四》——C#中的 “屬性和索引器中的 get 和 set 訪問器的訪問修飾符”
屬性和索引器中的 get 和 set 訪問器的訪問修飾符 ● 索引器和屬性自帶 get 和 set 訪問器, 在預設的情況下: 如果一個屬性有public 訪問級別, 那麼它的那個兩個訪問器
C#中不加訪問許可權修飾符時的預設訪問許可權說明
1.宣告名稱空間、類,前面不加限制訪問修飾符時,預設訪問許可權為internal——訪問僅限於當前程式集。 2.宣告類成員(包括欄位(變數)、屬性和方法)預設為private)以及結構型別,前面不加限制訪問修飾符時,預設訪問許可權為private——訪問僅限於當前類。3.宣
C#中如何使用訪問修飾符來修飾屬性
public string ID {get; private set;} 上面的屬性對例項公開get方法,而在類裡面可以使用set方法。 相應的internal, protected, internal protected都可以用來修飾屬性。注意public不可以,因為預設
C#中預設訪問修飾符
如果被問到C#中預設的訪問修飾符是什麼?你該怎麼回答,是不是感覺不太好說!我把資料整理如下, 僅供參考! 首先,必須明確的是C#中的訪問修飾符有5中: public 同一程式集中的任何其他程式碼或引用
Android NDK(JNI)學習總結一:Java程式碼中申明native函式-Java呼叫C函式,並在C函式中訪問java類和方法、屬性
本文不涉及android-ndk開發環境搭。 步驟一:新建一個APP,名稱為HelloJNI,然後定義一個類(將會在native程式碼中呼叫和訪問該類): package com.example.hellojni; public class JNITe
C#如何訪問Lua中的屬性(1)
參考 http://www.myexception.cn/c-sharp/1881698.html C#如何訪問Lua中的屬性 1) .C#如何訪問LUA中的屬性? 2) .C#如何訪問LUA中的函式? 3) .C#如何訪問LUA中的表? 第一個檔案
C#中4個訪問修飾符(隨筆)
結構 public 成員訪問 集中 internal pub ted 限制 nal Public:公有的,是類型和類型成員的訪問修飾符。對其訪問沒有限制。 Internal:內部的,是類型和類型成員的訪問修飾符。同一個程序集中的所有類都可以訪問 Private:私
C語言中的作用域,鏈接屬性和存儲類型
硬件 變量的存儲 bsp 文件的 tro 們的 沒有 聲明 一個 作用域 當變量在程序的某個部分被聲明的時候,他只有在程序的一定漁區才能被訪問,編譯器可以確認4種不同類型的作用域:文件作用域,函數作用域,代碼塊作用域和原型作用域 1.代碼塊作用域:位於一對花括號之間的所
c#中 線程訪問控件的解決方法 可直接調用此方法
個人理解 調用 sys ext app tar 執行 csharp back 問題 由於在初學c#的時候 使用了 線程委托去執行函數,是為了不讓軟件窗體假死。所以使用下方代碼: Thread th = new Thread(Getform); //創建線程
C#中的屬性
自由 set 不能 缺少 驗證 賦值 限制 意義 無法 在C#中,我們可以非常自由的、毫無限制的訪問公有字段,但在一些場合中,我們可能希望限制只能給字段賦於某個範圍的值、或是要求字段只能讀或只能寫,或是在改變字段時能改變對象的其他一些狀態,這些單靠字段是無法做到的,於是就有
c#中datareader中HasRows屬性和Read方法的區別
可用 記錄 開頭 als true spa read 返回 row datareader.HasRows 屬性獲取一個值,該值指示 SqlDataReader 是否包含一行或多行,如果是則返回true,否則返回false; datareader
C++中一個類訪問另外一個類的成員變數或者成員函式
1.在一個類中定義另外一個類的成員為指標型別。並用this指標管理物件的記憶體,實現資料的傳遞。 #include <stdio.h> class A { public: A(); ~A(); void SetData(int year, int month, int day);
c++中 預設定義 函式過載 引用
##概要 本片部落格 的主要內容有, c++中函式預設定義、 函式過載的機制 、函式名在VS環境下編譯後的修改,引用 及其 注意事項。最後列了一個表 文章目錄 預設定義 預設引數 預設引數的分類
《隨筆七》——C#中的 “ 屬性 、 靜態屬性 ”
目錄 屬性 使用屬性 利用 set 和 get 訪問器 執行其它運算 只讀和只寫屬性 屬性和公共欄位 自動實現屬性 靜態屬性 屬性 ● 屬性是代表類的例項或類中的一個數據項的成員。屬性指的是一組兩個匹配的、稱為訪
C語言中符號的儲存類、連結屬性和生命週期
C語言中符號的儲存類 程式碼段:程式執行的程式碼,其實就是函式,它的生命週期是永久的(永久的意思就是在程式被執行時誕生,在程式終止時消亡),不過一般程式碼的生命週期我們並不關注。有時候放在程式碼段的不只是程式碼,還有const型別的常量,還有字串常量(const型別的常量、字串常量有時候放在