どのように私は、CLIで参照することにより、チェックボックスの値を渡すには?

StackOverflow https://stackoverflow.com/questions/1078680

質問

私は、設定可能なオプションの負荷を持っているC ++ / CLIで書かれたGUIアプリケーションを持っています。私は自分のデータソースから値をつかむいくつかのオーバーロードされた機能を持っていると私はそれらの値に私のオプションを接続したいと思います。

だからここにデータレトリバーのカップルがいます:

bool GetConfigSingle(long paramToGet, String^% str, char* debug, long debugLength);
bool GetConfigSingle(long paramToGet, bool^% v_value, char* debug, long debugLength);

私は次のようにチェックボックスのCheckedゲッター/セッターに渡すために期待していた。

result = m_dataSource->GetConfigSingle(CONFIG_OPTION1, this->myOption->Checked, debug, debugLen);

...しかし、何らかの理由で私はChecked値は、私が期待として渡されていません示唆奇妙なコンパイラエラーを取得します:

1>.\DataInterface.cpp(825) : error C2664: 'bool DataInterface::GetConfigSingle(long,System::String ^%, char*, long)' : cannot convert parameter 2 from 'bool' to 'System::String ^%'

以前、このコードは、チェックボックスに合格し、値自体を変更し、私はWindowsフォーム上で、当社のデータ収集が現在持っている依存関係を壊すことに熱心だ。

それでは、私はここで行方不明ですか?

彼らは当初、混乱を避けるためにあったように、

[編集] を私は関数定義を記入してきました - 無関係の情報を削減する私の試みは失敗した。

私はかなり確信している CheckBoxのゲッター/セッターブールを返します。

役に立ちましたか?

解決

私は上から私のコメントを明確にし、それを「本物」の答えにするはずと考えた...

あなたがチェック呼び出すと、何を戻り値として戻ってきているのは、チェックボックスの現在の状態を表すブール値です。それは、しかし、のないのチェックボックスの状態を保持している実際のデータメンバへの参照です。実際には、適切にカプセル化されたクラスは、それへのアクセス権を与えるべきではありません。チェック値によってブールを戻すので、そのブール値は、必ずしもGetCongigSingleが呼び出された時点では存在しない一時的な目的である。

これは、いくつかのオプションであなたを残します。どちらか好きな場所を「チェック」の値でのBOOL の秒を渡し、後でチェックボックスの状態を設定、または参照することによりチェックボックス自体を渡してます。

他のヒント

あなたはメソッドに4つの引数を渡しているのに対し、

あなたは両方を記載している方法のGetConfigSingleFileの2つの過負荷は2つの引数を取ります。任意のデフォルト引数はありますか?そうならば、あなたは元のメソッドの宣言を再現してくださいすることができますか?

おそらく、このメソッドの引数4の過負荷は、第二引数としてString^%を期待しています。これは、コンパイラがとにかく示唆されているものです。しかし、我々は問題を診断助けることができるメソッド宣言を見てすることができます。

これは私の質問への答えではなく、を意識することの価値 - は明らかに<のhref = "http://bytes.com/groups/net-vc/602761-c-cli-quirk-passing-があります特性基準パラメータ」REL = 『nofollowをnoreferrer』>参照するによってプロパティを渡すに癖。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top