サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
ドラクエ3
maasa.cside.com
先日 グローバル変数を使うなと言われてもどうしたらいいの を書きましたが、その内容を自分で見返しているときに VB.NET の Module のことを思い出しました。私は普段 C# を使っていることが多いので、Module はあまり身近なものではありません。VB.NET を使う場合もいわゆる「静的クラス」で定義することが多いです。他の人のプログラムの CDI をするときなどに Module で実装されているのを目にして思い出します。 VB.NET の Module は .NET Framework 標準の要素ではなく、VB.NET 固有のものです。VB との互換性を保つためだと思うのですが、VB.NET に数あるシンタックスシュガーを代表するものの一つだと思います。 Windows デベロッパーセンターに VB.NET の連載記事があり、そこでも Module について説明がされています。
ほとんどのコーディング標準では、グローバル変数は極力使用しないようにしてくださいと説明されています。 グローバル変数が推奨されない主な理由には次のようなものがあります。 どこからでも値を変更できてしまう 値が変更されたことを検知できない 値を変更する複数の処理を同時に実行できない それぞれについてリファクタリング案を考えてみます。 1. どこからでも値を変更できてしまう まず、読み取り専用でよいのではないですか?もしそうであれば、読み取り専用にしてください。値が変更される心配をしなくて済みます。.NET Framework ではフィールドに対して readonly を指定する方法と、get アクセサのみを定義した読み取り専用プロパティにする方法があります。 VB.NET '読み書き可能なフィールド(いわゆるグローバル変数) Public Shared MinimumDate As Date
構造体を Dictionary<TKey, TValue> のキーに用いる場合、その構造体の GetHashCode メソッドをオーバーロードしておくとパフォーマンスが向上します。 次のようなテストコードを実行し、GetHashCode メソッドをオーバーライドしたときとしないときでの処理時間を比較してみます。指定された個数だけランダムなキー値を持つ PersonData クラスを生成し、PersonKey 構造体をキーに指定してディクショナリに格納していきます。 VB.NET ' キーに使用する構造体 Public Structure PersonKey ' コンストラクタ Public Sub New(ByVal category As Integer, ByVal code As String) m_Category = category m_Code = code ' cateog
このページを最初にブックマークしてみませんか?
『maasa.cside.com』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く