[英]C++/CLI: How to write property of the property
我在C ++ / CLI中有2個引用類:
>頭等艙:
public ref class wBlobFilter
{
int mMin;
int mMax;
bool mIsActive;
public:
// min value
property int Min
{
int get() {return mMin;}
void set(int value) {mMin = value;}
}
// max value
property int Max
{
int get(){return mMax;}
void set(int value){mMax = value;}
}
// set to true to active
property bool IsActive
{
bool get() {return mIsActive;}
void set(bool value){mIsActive = value;}
}
};
>第二類:
public ref class wBlobParams
{
wBlobFilter mFilter;
public:
property wBlobFilter Filter
{
wBlobFilter get() {return mFilter;}
void set(wBlobFilter value) { mFilter = value; }
}
};
當我在C#中調用它時,出現錯誤消息: “由於它不是變量,因此無法修改返回值”
Params.Filter.Min = 0;
因此,如何直接通過wBlobParams類的屬性設置wBlobFilter類的成員變量的值? 對不起,我的英語不好。 謝謝!!!
很難知道您到底想發生什么。 如果繼承,則過濾器的屬性將可用。
public ref class wBlobParams : public wBlobFilter
{};
void f(wBlobParams^ params) {
auto max = params->Max;
}
或在wBlobParams中復制屬性訪問:
public ref class wBlobParams {
public:
wBlobFilter^ mFilter;
property int Max {
int get() { return mFilter->Max; }
}
};
void f(wBlobParams^ params) {
auto max = params->Max;
}
編輯1:
看這個。 你在做什么很好。 只是您使用gc句柄的語法是錯誤的。
public ref class cA {
int x;
public:
cA() : x(0) {}
property int X {
int get() { return x; }
void set(int _x) { x = _x; }
}
};
public ref class cB {
cA^ a;
public:
cB() : a(gcnew cA()) {}
property cA^ A {
cA^ get() { return a; }
void set(cA^ _a) { a = _a; }
}
};
void main() {
cB^ b = gcnew cB();
b->A->X = 5;
Console::WriteLine(b->A->X);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.