あるクラス内で、下記のように定義された変数があります。(共通で利用しているクラス)ある場合だけ、この値を別な値としたいのですが、Constで定義した値を変更する事は出来ないのでしょうか。当方初心者で、素人的な質問かもしれませんが、よろしくお願いします。また、以下にコードサンプルを記しますが、これまた素人的な書き方でうまく伝わらないかもしれません・・。--- MyClass1.vb ---Public Class CLASS1 Public Const MyArg1 As String = "Test1" :--- MyTest1.vb ---Dim xArg As String MyArg1 = "Test2" :--- MyTest2.vb ---Dim PubArg As String PubArg = MyArg1 <--- ある場合だけ、Test2 という値を取得したい。 :
>Const定義された変数値constant(名) 1 〔理〕定数,常数,恒数[Const ステートメント]http://msdn2.microsoft.com/ja-jp/library/cyxe49xw.aspxConst定義された時点で変数ではありません。定数です。変数にしたいのなら変数として宣言してください。
> >Const定義された変数値> constant(名) 1 〔理〕定数,常数,恒数> > [Const ステートメント]> http://msdn2.microsoft.com/ja-jp/library/cyxe49xw.aspx> > Const定義された時点で変数ではありません。定数です。> 変数にしたいのなら変数として宣言してください。早々の回答有難うございます。定数となるのですね。ちなみに、クラスを再定義のような形では出来ないでしょうか。
> ちなみに、クラスを再定義のような形では出来ないでしょうか。自分しか分からない独自の表現をされても、こちらで理解することはできません。> クラスを再定義そのような表現を聞いたことがありませんが、もとになった情報があるならそのページなどをリンクするなり、掲示板(雑談&画像投稿)に投稿するなりして説明してください。もしくは、最初の質問のように、具体的な操作をからめて説明してみてください。
下手(不明)な質問内容で申し訳ありません。処理のイメージでいいますと、--- MyClass1.vb ---Public Class CLASS1 Public Const MyArg1 As String = "Test1" :--- MyTest1.vb ---Dim xArg As String CLASS1.MyArg1 = "Test2" <--- 変更したい値をセットし クラス定義のリロード(CLASS1) <--- その変更を有効にする。 といったように、MyClass1 の内容を置き換える?オーバーロードする?といった事は出来ないのでしょうか。 :--- MyTest2.vb ---Dim PubArg As String PubArg = MyArg1 <--- ある場合だけ、Test2 という値を取得したい。 :説明下手で申し訳ありません。
それはもはや定数 constant じゃないです。
> それはもはや定数 constant じゃないです。確かに言えてます。失礼しました。るしぇ さんも回答有難うございました。
質問内容が変わって無いなら回答も同じです。> Const定義された時点で変数ではありません。定数です。> 変数にしたいのなら変数として宣言してください。…回答を聞いてください。……変数として宣言してください。初期化以外で変更されたくないなら、コンストラクタ(New)で内部(Private)変数を設定し、外部には ReadOnly のプロパティで公開すればいいのでは?