C#で文字列のシステム参照を取得する方法 ― string.Internメソッドの使い方
C#で指定された文字列へのシステム参照を取得するには、String.Internメソッドを使用します。このメソッドは、共通言語ランタイム(CLR)が内部で管理している「インターン プール(intern pool)」から、指定した文字列と同じ内容の参照を検索して返します。プール内に該当する文字列が存在しない場合は、その文字列への参照がプールに追加されたうえで返されます。
例1:string.Internの基本的な使い方
using System;
public class Demo {
public static void Main(string[] args) {
string str1 = "David";
string str2 = string.Intern(str1);
Console.WriteLine("String1 = " + str1);
Console.WriteLine("System reference of String1 = " + str2);
}
}
出力結果
上記のコードを実行すると、次のような出力が得られます。
String1 = David System reference of String1 = David
このように、string.Intern(str1)はstr1と同じ内容の文字列に対するシステム上の参照を返すため、変数str2にも「David」という同じ値が格納されます。
例2:別の文字列に対する動作
続いて、もう少し具体的な例を見てみましょう。
using System;
public class Demo {
public static void Main(string[] args) {
string str1 = "50";
string str2 = "100";
Console.WriteLine("String1 = " + str1);
Console.WriteLine("String2 = " + str2);
str2 = string.Intern(str1);
Console.WriteLine("System reference of String1 = " + str2);
}
}
出力結果
実行すると、以下の出力が表示されます。
String1 = 50 String2 = 100 System reference of String1 = 50
コードの解説
最初は変数str2に「100」が代入されていますが、その後string.Intern(str1)を呼び出すことで、str1(「50」)へのシステム参照がstr2に再代入されます。そのため、最後の出力ではstr2の値が「50」に変わっていることが確認できます。
なお、インターン プールを活用すると、同じ内容の文字列がメモリ上に複数重複して存在するのを防げるほか、Object.ReferenceEqualsなどによる参照比較を高速化できるというメリットもあります。大量の文字列を扱うアプリケーションでは、パフォーマンス改善の手段として覚えておくと便利です。
-
【Android開発】システムバージョン(OSバージョン・APIレベル)を確認・表示する方法
Androidのシステムバージョンをプログラムで確認する方法 この記事では、Androidアプリ内で端末のシステムバージョン(OSバージョン・コードネーム・APIレベル)を取得し、画面に表示する方法を、実際のコード例とともにステップごとに解説します。バージョンによって処理を分岐させたい場合などに役立つテクニックです。 手順1:Android Studioで新規プロジェクトを作成する Android Studioを起動し、メニューから「File」→「New Project」を選択します。必要な項目(プロジェクト名、パッケージ名、保存先など)を入力して、新しいプロジェクトを作成してください。
-
Windows 10でシステム言語を変更する方法【表示言語・キーボード・地域設定まで完全解説】
Windows 10のインストール・セットアップ時には、システム言語を選択するよう求められます。うっかり間違えた言語を選んでしまった場合や、別の言語に切り替えたい場合でも、手順さえ把握していれば難しくありません。 本記事では、Windows 10において現在のユーザー、今後作成する新規ユーザー、ようこそ画面それぞれに対してシステム言語を変更する方法、そして追加した言語を既定の言語として設定する方法を解説します。 現在表示されている言語が読めない場合でも、掲載しているスクリーンショットを参考にすれば大丈夫です。アイコンやボタンの配置は、どの言語環境でも共通しています。 Windows 10でシス