まだVB.NETをはじめてばかりの初心者です。
オブジェクト定数宣言時ににプロパティー値を入れてクラス内で
使用したいのですが可能でしょうか?
定数にプロパティーを
const a As NEW オブジェクト型 = a.プロパティー(引数)
と言う風に設定すると”定数には値が必要です。”と出てしまいます。
まことに恐縮ですが教えてください。
1行にしようと思わないで2行にしてみるとかどうでしょうかね
.Netはまったくわかりませんが
私も.NETはわかりませんが、
> ”定数には値が必要です。”
というコンパイルエラーがでるのなら、そのままの通り
> a.プロパティー(引数)
が実行時に決定されるからなのでは?
※…ん?ちょっと考えれば、
> const a As NEW オブジェクト型 = a.プロパティー(引数)
という式、「何を定数式にするか?」という部分があいまいでは?
・aは"オブジェクト型"の新しいインスタンスを格納して、定数式になる
・aは、aのプロパティが返す参照を格納して、定数式になる
さらにいえば、
・そもそもaに"オブジェクト型"の新しいインスタンスへの参照が設定されるのが先で、
a.プロパティーが呼ばれるのが後なのか分からない。
以上のことから、この構文事体が貴方の思惑通りに動くとは限らないように感じますので、
できるなら、もっと詳しく状況を説明してほしいかと思います。
…というか、インスタンスへは動的に作られるはずなので、その参照も定数式にできないのでは?
という根本的な疑問も残りますね…
まず、「定数」が何たるかを考えてみてください。
その場合は、静的な ReadOnly なフィールドを使います。
Public Class DataClass
Public Shread ReadOnly HARUGAKITA As String
End Class
これは、コンストラクタの時にのみ値が設定可能なフィールドです。
# 偉そうなこと書いておいて、Shared のつづりを間違えて鬱。
返信ありがとうございます。
OleDbConnectionのConnectionStringプロパティー接続文字列
をprivateに使用可能な定数として宣言したいのです。
> a.プロパティー(引数)
が実行時に決定されるからなのでは?
ということはやはり構文的に無理ということでしょうか?
不可能なら他の方法(構文)を探します。
>1行にしようと思わないで2行にしてみるとかどうでしょうかね
privateに使用可能な定数として宣言したいのです。
2行で可能ならやりたいですが
じゃんぬさん
勉強になりました、えらそうではないですよ。
解決
そして解決策は本人の中のみ、と・・・
無益
ツイート | ![]() |