###前提・実現したいこと
例として商品データ受け渡しのためにクラスを作成しました。
クラス内では商品名、数量、価格の3項目を保持します。
ユーザーがフォーム上のテキストボックスへ入力した情報をクラス内変数へ格納するのですが
値のチェックも行いたいと思っています。
クラスのメンバ変数へのアクセスはプロパティのLet、Getステートメントを通ります
###発生している問題
数量、価格など計算対象にもなる項目のメンバ変数の型について悩んでしまいました。
以下検討中のパターンです。個人的には【C】のパターンは無いかなと思っており
【A】か【B】のどちらかなのですが・・・
一般的な方法や、自分はこうしている等アドバイス頂けませんでしょうか?
前提:
Variant型は基本使用しない
クラスに受け渡し前の値の型は文字列型/VarType(TextBox1.Value) = 8(文字列型)より
チェック内容は数値であるか、有効範囲内の値であるか等
【A】
・メンバ変数、パラメータは文字列型で宣言
・プロパティ内で数値型へ変換その他チェックを全て行う
・クラス内外で計算に使用する際には都度、型変換して使用する
メリット:チェック内容の記述が1箇所で済む。
デメリット:計算には都度型変換が必要、数の項目を文字列として格納するのに違和感(自分だけかも)
【B】
・メンバ変数、パラメータは数値型で宣言する
・受け渡し前に数値として有効かだけをチェック(渡し時の型エラー予防)
・有効なら型変換してクラスへ格納、その他チェックをプロパティ内で行う
メリット:計算にそのまま使用できる、項目と型で違和感がない。
デメリット:クラスへ渡す前に都度、型のチェックが入る。チェック項目がクラスの内、外に分かれる。
【C】
・メンバ変数、パラメータは数値型で宣言する
・受け渡し前に全てのチェックを済ます
・クラスでは値を保持するだけ
メリット:計算にそのまま使用できる、項目と型で違和感がない。
デメリット:同じチェックの記述がが点在する、クラスの恩恵が薄い。
###該当のソースコード
ここにご自身が実行したソースコードを書いてください
###試したこと
課題に対してアプローチしたことを記載してください
###補足情報(言語/FW/ツール等のバージョンなど)
より詳細な情報
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/05/15 13:09