定数にプロパティー値を入れる

解決


moke  2005-08-05 17:01:19  No: 123968  IP: [192.*.*.*]

まだVB.NETをはじめてばかりの初心者です。
オブジェクト定数宣言時ににプロパティー値を入れてクラス内で
使用したいのですが可能でしょうか?
定数にプロパティーを
const a As NEW オブジェクト型 = a.プロパティー(引数)
と言う風に設定すると”定数には値が必要です。”と出てしまいます。

まことに恐縮ですが教えてください。

編集 削除
通ってみた  2005-08-06 00:02:19  No: 123969  IP: [192.*.*.*]

1行にしようと思わないで2行にしてみるとかどうでしょうかね


.Netはまったくわかりませんが

編集 削除
ガッ  2005-08-06 00:33:39  No: 123970  IP: [192.*.*.*]

私も.NETはわかりませんが、
> ”定数には値が必要です。”
というコンパイルエラーがでるのなら、そのままの通り
> a.プロパティー(引数)
が実行時に決定されるからなのでは?

※…ん?ちょっと考えれば、
> const a As NEW オブジェクト型 = a.プロパティー(引数)
  という式、「何を定数式にするか?」という部分があいまいでは?
  ・aは"オブジェクト型"の新しいインスタンスを格納して、定数式になる
  ・aは、aのプロパティが返す参照を格納して、定数式になる
  さらにいえば、
  ・そもそもaに"オブジェクト型"の新しいインスタンスへの参照が設定されるのが先で、
    a.プロパティーが呼ばれるのが後なのか分からない。
  以上のことから、この構文事体が貴方の思惑通りに動くとは限らないように感じますので、
  できるなら、もっと詳しく状況を説明してほしいかと思います。
  …というか、インスタンスへは動的に作られるはずなので、その参照も定数式にできないのでは?
  という根本的な疑問も残りますね…

編集 削除
じゃんぬねっと  URL  2005-08-06 09:59:14  No: 123971  IP: [192.*.*.*]

まず、「定数」が何たるかを考えてみてください。

その場合は、静的な ReadOnly なフィールドを使います。

Public Class DataClass

  Public Shread ReadOnly HARUGAKITA As String

End Class

これは、コンストラクタの時にのみ値が設定可能なフィールドです。

編集 削除
じゃんぬねっと  URL  2005-08-06 09:59:56  No: 123972  IP: [192.*.*.*]

# 偉そうなこと書いておいて、Shared のつづりを間違えて鬱。

編集 削除
moke  2005-08-08 16:40:29  No: 123973  IP: [192.*.*.*]

返信ありがとうございます。
OleDbConnectionのConnectionStringプロパティー接続文字列
をprivateに使用可能な定数として宣言したいのです。

> a.プロパティー(引数)
が実行時に決定されるからなのでは?

ということはやはり構文的に無理ということでしょうか?
不可能なら他の方法(構文)を探します。

>1行にしようと思わないで2行にしてみるとかどうでしょうかね
privateに使用可能な定数として宣言したいのです。
2行で可能ならやりたいですが

じゃんぬさん
勉強になりました、えらそうではないですよ。

編集 削除
moke  2005-08-11 08:49:23  No: 123974  IP: [192.*.*.*]

解決

編集 削除
通ってみた  2005-08-11 13:38:14  No: 123975  IP: [192.*.*.*]

そして解決策は本人の中のみ、と・・・


無益

編集 削除