Private Shared _twolettercountryCodeDict As Generic.Dictionary(Of String, String)
Private Function twolettercountrycode() As String
If _twolettercountryCodeDict Is Nothing Then
_twolettercountryCodeDict = New Generic.Dictionary(Of String, String) From {{"ty", "turkey"}, {"py", "pakinmay"}, {"ra", "romania"}, {"vm", "vietnam"}, {"bl", "brazil"}, {"et", "egypt"}, {"ka", "korea"}}
Dim listOfCountries = fileToCol(COUNTRYCODESFileName)
For Each var In listOfCountries
Dim ar = var.Split({"*"}, System.StringSplitOptions.None).ToList()
_twolettercountryCodeDict.Add(LCase(ar(1)), UCase(ar(0)))
Next
End If
Return _twolettercountryCodeDict(Me.twoletter.ToLower)
End Function
、私は、プログラム全体のためにその_twolettercountryCodeDictを共有したいと思いますのでですPrivate Shared _twolettercountryCodeDict As Generic.Dictionary(Of String, String)
共有変数のスコープを1つの関数でしかアクセスできないように制限する方法はありますか?ここで
を使用しています。私は基本的に遅延読み込みを実装しています。テキストファイルを読み込んだコードの一部に、国コードを繰り返し入力する必要はありません。
プライベート共有として宣言すれば、同じクラスの他のメソッドもその変数にアクセスできます。これはあまり問題にはならないが、私はそれを避けたいと言います。
関数内で変数をstaticとして宣言すると、twolettercountryCodeDictは共有されません。
私はジレンマに陥っています。解決策は何ですか?
2つのレターカウントトレンドコードにはプライベートメンバーが必要なので、共有ファンクションにすることはできません。しかし、私は_twolettercountryCodeDictを共有し、2つのletterscountrycodeからしかアクセスできないようにしたい。私はそうすることができますか?
関数で設定したプライベート変数の値を返す読み取り専用のプライベート共有プロパティを宣言します。 – Tibrogargan
これは完璧な解決策です。 –