2016-07-02 9 views
0

のプロパティを作成する方法:C++/CLI:私はC++/CLIで2つのREFクラスを持っている財産

を>ファーストクラス:

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#でそれを呼び出すとき、私は、エラーメッセージが表示されました:私はを通じてクラスwBlobFilterのメンバ変数の値を設定することができますどのように

 Params.Filter.Min = 0; 
ので

は「それは変数ではないので、戻り値を変更できません」クラスwBlobParamsのプロパティを直接ですか?私の悪い英語を申し訳ありません。ありがとうございました!!!

+2

cliコードで 'wBlobFilter'の代わりに' wBlobFilter^'を使用してはなりませんか? – stijn

+0

継承すると、フィルタのプロパティが使用可能になります。 公開リファレンスクラスwBlobParams:public wBlobFilter {...};それがあなたの後にあるのかどうかはわかりません。 – tukra

+0

私は試しましたが、私の問題ではありません。 \t wBlobFilterからwBlobParamsを継承したくない場合、wBlobFilterはwBlobParamsのメンバーにすぎませんが、wBlobParamsのプロパティで値を設定したいとします。 'Params.Filter.Min = 0' – DungTv

答えて

0

正確に何が起こりたいのか分かりません。継承すると、フィルタのプロパティが使用可能になります。

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ハンドルを使用するための構文は間違っています。

+0

wBlobFilterからwBlobParamsを継承したくない場合、wBlobFilterはwBlobParamsのメンバーにすぎませんが、wBlobParamsのプロパティで値を設定します。このように: Params.Filter.Min = 0; – DungTv

+0

上記の編集を参照してください – tukra

+0

@tuka:ありがとうございました。私は理解しました。 これは間違っていますか?class cAをrefからvalueに変更するとどうなりますか? – DungTv

関連する問題