- - PR -
検索結果のエラー表示について【初歩的質問】
1
投稿者 | 投稿内容 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2008-08-18 15:20
[環境:WindowsXP]
[言語:VB.NET] 初歩的な質問です。 下記のように書き込みのみのプロパティを用意し、 Public WriteOnly Property MessageManager() As MessageManager Set(ByVal Value As MessageManager) Me.m_messageManager = Value End Set End Property データの検索結果が上限値を超えた場合、検索条件をもっと絞り込むように促すメッセージを表示するように試みております。 If ((list.Count >= DatabaseManager.FindMaxFetchSize) AndAlso (controller.Count(condition) > DatabaseManager.FindMaxFetchSize)) Then MessageManager.Show("検索結果が上限値を超えました。条件を絞り込んで下さい。", Me.Text, MessageBoxButtons.OK, MessageBoxIcon.Asterisk) End If しかし、ビルドエラータスクに【プロパティ 'MessageManager' は 'WriteOnly' です。】と表示されコンパイルが通りません。 初歩的な内容で申し訳ございませんが、どなたか教えて頂けませんでしょうか。 よろしくお願い致します。 | ||||||||||||
|
投稿日時: 2008-08-18 16:04
そもそもなぜMessageManagerプロパティはWriteOnlyにしたのでしょう?
WriteOnlyの意味を理解してますか? | ||||||||||||
|
投稿日時: 2008-08-18 16:29
こんにちわ
クラス関係と役割がわからないとなんともいえないのですが、
このコードはどこから呼ぶのでしょうか? プロパティ経由で利用する必要があるのでしょうか?
ここで、MessageManagerを取得(get)しているために、エラーは発生しています。 このコード、実はこうでは?
| ||||||||||||
|
投稿日時: 2008-08-18 16:44
そのままです。 書き込み専用 (WriteOnly) プロパティになっているので読み込み (Read) ができません。 Setter だけでなく Getter を定義するべきだと思います。 というより書き込み専用プロパティは普通は使わないですね。 (書き込みできるなら参照ができてもさして害でない)。 書き込みのみであれば Set から始まるメソッドにしているパターンが多いと思います。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||||||
|
投稿日時: 2008-08-18 17:36
回答頂いた皆様ありがとうございました。
特にWriteOnlyにする必要もありませんでしたので、 Setter/Getterを設定することでコンパイルエラーを回避することができました。 |
1