none
クラスのプロパティのデフォルト値 RRS feed

  • 質問

  • おはようございます。

    VB2005Express+SQLServerExpressにて作業をしています。

    非常に基本的なことではあるのですが、クラスの中にプロパティを作成し、そこにデフォルト値をセットしたいのですが、
    その場合は、コンストラクタ内において、

    プロパティ名=デフォルト値

    といった記述を加えればよいのでしょうか。

    印刷に関するクラスを作成しようと思っているのですが、PensオブジェクトやFontオブジェクトの規定値をセットしておきたいのです。

    いくつか参考書を見たのですが、あまりに基本的なことなのか、これに関する記述を見つけることができませんでした。

    よろしくお願いします。
    2009年9月15日 23:17

回答

  • 外池と申します。基本的に、仰るとおりかと思います。

    私なりの過去の経験からしますと、いくつかパターンがあると思いますが、

    1) プライベートな変数にプロパティーの値を格納しておき、Propertyメンバーはプライベート変数へアクセスする窓口の機能しかないときには、プライベートな変数に初期値を与えておくだけで良いですよね? これは、コンストラクタの中で記述してもいいし、変数を宣言するときに初期化してもよいですし。

    2) PropertyメンバーのSetに少し処理を記述するような場合は、コンストラクタの中で「プロパティ名=デフォルト値」でよいかと思います。

    3) PropertyメンバーのSetの内容が複雑で、特に、事前に別途初期化処理が必要な場合には、コンストラクタは、まず初期化処理を書いて、その後で「プロパティ名=デフォルト値」を書く、ということになりますよね。

    こんな感じでしょうか・・・。
    (ホームページを再開しました)
    • 回答としてマーク TI-cb400 2009年9月16日 8:33
    2009年9月16日 0:50

すべての返信

  • 外池と申します。基本的に、仰るとおりかと思います。

    私なりの過去の経験からしますと、いくつかパターンがあると思いますが、

    1) プライベートな変数にプロパティーの値を格納しておき、Propertyメンバーはプライベート変数へアクセスする窓口の機能しかないときには、プライベートな変数に初期値を与えておくだけで良いですよね? これは、コンストラクタの中で記述してもいいし、変数を宣言するときに初期化してもよいですし。

    2) PropertyメンバーのSetに少し処理を記述するような場合は、コンストラクタの中で「プロパティ名=デフォルト値」でよいかと思います。

    3) PropertyメンバーのSetの内容が複雑で、特に、事前に別途初期化処理が必要な場合には、コンストラクタは、まず初期化処理を書いて、その後で「プロパティ名=デフォルト値」を書く、ということになりますよね。

    こんな感じでしょうか・・・。
    (ホームページを再開しました)
    • 回答としてマーク TI-cb400 2009年9月16日 8:33
    2009年9月16日 0:50
  • ご回答ありがとうございます。

    1)の方法はまったく思いつきませんでした。

    自分としては、やはり 2)の方法がわかりやすいので、まずは2)の方法で進めてみたいと思います。

    どうもありがとうございました。
    2009年9月16日 8:34