- - PR -
ユーザーコンポーネント内の値の取得・設定方法について
1
投票結果総投票数:34 | |||
---|---|---|---|
プロパティだろ? | 33票 | 97.06% | |
メソッドが良いよね? | 1票 | 2.94% | |
両方実装すれば? | 0票 | 0.00% | |
その他 | 0票 | 0.00% | |
|
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2006-11-17 16:18
皆さんこんにちは。
VS.NET2005(C#)でWindowsアプリ開発をするにあたり、今後共通で使えるように ユーザーコントロールで共通コンポーネントを作ろうとしています。 例えば、コードと名称を入力する2つのTextBoxが貼り付けられたユーザーコント ロールを作るとします。 Tab順序や各TextBoxのValidatingイベントでの処理などは、このユーザーコント ロールに予め実装しておきます。 後は、各TextBoxに値をセットしたり、入力した値をゲットする処理を作るだけ なのですが、どのような方法をとるかで、以下の2つの方法を思いつきました。 ユーザーコントロールにプロパティを用意して、プロパティを使ってTextBoxの 値の設定・取得を行う方法。 ユーザーコントロールにメソッドを用意して、メソッドを使ってTextBoxの値の 設定・取得を行う方法。 個人的には、プロパティというものにあまり馴染みが無いので、メソッドを 用意するのが良いのかな?と考えているのですが・・・ 皆さん、こんな時はどちらの方法を選択してますか? 或いは、他にもっと良い方法があったりしますでしょうか? ご意見等、宜しくお願いいたします。 | ||||
|
投稿日時: 2006-11-17 16:29
デザイナとの都合を考えると、今回はプロパティが望ましいと思います。
それ以外の場合は、一概にこれとは言い切れないので、投票はしていません。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||
|
投稿日時: 2006-11-17 18:47
.NET Frameworkにあるコントロールや、それ以外のクラスを使ってみればわかりますが、
プロパティは慣れるとすごく便利です。 非常に直感的なコードで、取得、設定ができますし、コントロールの場合はデザイナでグラフィカルに操作することさえできます。 ただ、あまりに気軽に使えすぎるので、 多少複雑な、「実行している」ことを使用者に意識してほしい場合は、 私はメソッドにするようにしています。 取得に伴い、直接関係ない内部状態が変更されるとか。 取得に伴い、ファイルを読みに行く処理が発生するとか。 そういう場合です。 | ||||
|
投稿日時: 2006-11-17 20:22
今回のような場合ですとプロパティで私は実装します。
メソッドにするかどうかの切り分けとしては、それが動作を表すかどうか、 という点を気にするようにはしています。 実装としては極端な話「どちらでもいい」ので設計思想によるところかな・・・ などと個人的には思いますね。 | ||||
|
投稿日時: 2006-11-20 18:08
皆さん、投票・ご意見等ありがとうございます。
今のところ全員一致でプロパティですね。 もうちょっとコントロールが増えたり、TextBox以外の(例えばDateTimePicker等)が ユーザーコントロール内に張られたりしたらプロパティは厳しいかな? とも思ったのですが、よくよく考えたらコモンコントロールは基本的にプロパティで 値の設定などを行えてるんだから、それを利用して作成したユーザーコントロールも プロパティを使えないわけが無いですね。 皆さんのご意見を参考に、単に値の設定などではプロパティで実装。 動作など副次的な何かが発生する、或いは明示的に何かをさせたい等の場合は メソッドで実装。 という方向で進めていこうと思います。 皆さん、有難うございました。 | ||||
|
投稿日時: 2006-11-20 22:30
とはいえ、コントロールとしての外観変化、バインドなどは、プロパティで良いです。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 |
1