ResourceSet
ResourceManager によって作成される ResourceSet は、単一のカルチャのすべてのリソースを読み込んでキャッシュします。ただし、ResourceSet ではフォールバック機能が提供されないため、最も適しているのは、固有のロケールを扱うツールとローカライズされないアプリケーションです。WorldCalc を変更し、ResourceManager ではなく ResourceSet を使うようにする一例を次の 3 行のコードに示します。
private ResourceSet rs;
rs = rm.GetResourceSet(Thread.CurrentThread.CurrentUICulture, true, true);
// Replace all occurrences of rm.GetString with rs.GetString.
Graphic.vb サンプル ファイルから、Visual Basic で同じ処理を行うコードを次に示します。
Private rs As ResourceSet
rs = rm.GetResourceSet(Thread.CurrentThread.CurrentUICulture, true, true)
' Replace all occurrences of rm.GetString with rs.GetString.
最初の行は、ResourceSet 変数を宣言するだけです。2 行目は、現在のカルチャを渡して ResourceManager から ResourceSet を作成します。2 番目のパラメータは、まだ ResourceSet が読み込まれていない場合に、ResourceSet を作成するかどうかを制御します。3 番目のパラメータは、親の CultureInfo オブジェクトを読み込んでリソースを継承する必要があるかどうかを制御します。ResourceManager と ResourceSet には、どちらも GetString メソッドが実装されています。3 行目は、コードに加える必要のある多少の変更を示しています。
WorldCalc サンプルを変更して再コンパイルし、英語のコンピュータで次のコマンド ラインを使用して実行します。
WorldCalc de-CH
この結果、後の図のようなアプリケーションが表示されます。