掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
定数を配列の様な添字付きで使いたい (ID:148082)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
魔界の仮面弁士 様 Shu様 ご回答ありがとうございます。 >これって、配列の AsReadOnly メソッドのことでしょうか。 以下 MSDNより抜粋です。 MSDN ReadOnly(Visualbasic)より この変数のデータ型が配列やクラス インスタンスなどの参照型の場合、 変数自体が ReadOnly であっても、このメンバーは変更できます。 次に例を示します。 ReadOnly characterArray() As Char = {"x"c, "y"c, "z"c} Sub changeArrayElement() characterArray(1) = "M"c End Sub 変数 characterArray は ReadOnly なので、一度初期化するとこの値は 変更できません。つまり、新しい配列をこれに代入することはできません。 しかし、配列のメンバー (1 つまたは複数) の値は変更できます。 プロシージャ changeArrayElement の呼び出し後、characterArray() が 参照する配列には "x"、"M"、"z" が格納されています。 実際に書いてみましたが配列の中身は書き換え可能でした。 >私なら、配列または List(Of foo) の AsReadOnly を使うかな。 キーワードを頼りに検索したところお二人がDOBONさんの板で 解答されているのが見つかりました。内容はほぼ同じですがこんな感じで しょうか? ■List(Of foo) の AsReadOnlyを使う方法 Imports System.Collections.ObjectModel Public Class Form1 Private ReadOnly DEFAULTb As ReadOnlyCollection(Of String) = _ New List(Of String)(New String() {"0", "1", "2", "3", "4"}).AsReadOnly() Private ReadOnly ReadInteger As ReadOnlyCollection(Of Integer) = _ New List(Of Integer)(New Integer() {10, 11, 12, 13, 14}).AsReadOnly() Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim sz As String Dim st As Integer sz = DEFAULTb(2) st = ReadInteger(1) Debug.WriteLine("sz= " + sz) Debug.WriteLine("st= " + st.ToString) End Sub End Class 私的にも、この書き方が後々わかりやすい感じがします。 余談ですが 会社の製造/検査プログラム(クラシックなCですが)の中にはyamada1,yamada2 なんていう 意味不明な変数・関数やlennon()という関数があったので調べてみると beep音?でジョンレノンの曲が出るようになっていたりと自己流&遊び心 満載!! 解読が困難なプログラムが・・・。 以前は動けばOKみたいな感じでコードを書いていましたが、やっぱり後輩に 笑われない程度のコードは残したいと思っている今日この頃です。 皆様ありがとうございました。
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.