この記事は90%~100%ChatGPTで作られています。
この記事は90%~100%ChatGPTで作られています。
この記事は90%~100%ChatGPTで作られています。
ぜひこちらの記事もご覧ください!!
転職回数4回(独立系⇒メーカー系⇒社内SE⇒SES)の私がSESのメリットについて書きました!
はじめに: C#のString型のIsInternedメソッドとは?
C#のString型のIsInternedメソッドとは何でしょうか?
IsInternedメソッドは、指定した文字列がインターンされているかどうかを調べるためのメソッドです。インターンとは、一度生成した文字列をプールして再利用することで、メモリの効率的な利用を可能にする仕組みのことを言います。

IsInternedメソッドの基本的な使用方法
それでは早速、IsInternedメソッドの基本的な使用方法について説明しましょう。
IsInternedメソッドは、文字列がインターンされている場合にその文字列を返し、そうでない場合にはnullを返します。以下に簡単な使用例を示します。
ソースコード例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
using System; class Program { static void Main() { string str1 = "Hello, world!"; string str2 = string.IsInterned(str1); if (str2 != null) { Console.WriteLine(str2 + " is interned."); } else { Console.WriteLine(str1 + " is not interned."); } } } |
出力結果
Hello, world! is interned.

IsInternedメソッドの詳細な使用方法
次に、IsInternedメソッドの詳細な使用方法について見ていきましょう。
例えば、同じ内容の文字列を複数生成した場合、それらは全て同じインスタンスを参照します。これを確認するためにIsInternedメソッドを利用することができます。
ソースコード例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
using System; class Program { static void Main() { string str1 = "Hello, world!"; string str2 = "Hello, world!"; string str3 = string.IsInterned(str1); string str4 = string.IsInterned(str2); if (str3 != null && str4 != null) { Console.WriteLine("Both strings are interned."); } else { Console.WriteLine("One or both strings are not interned."); } } } |
出力結果
Both strings are interned.

IsInternedメソッドの注意点
しかし、注意しなければならない点が一つあります。
それは、IsInternedメソッドは文字列リテラルに対してのみインターンを保証するということです。文字列操作によって生成された文字列はインターンされない可能性があります。これを確認するためのコードを以下に示します。
ソースコード例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
using System; class Program { static void Main() { string str1 = "Hello, world!"; string str2 = "Hello, " + "world!"; string str3 = string.IsInterned(str1); string str4 = string.IsInterned(str2); if (str3 != null && str4 != null) { Console.WriteLine("Both strings are interned."); } else { Console.WriteLine("One or both strings are not interned."); } } } |
出力結果
One or both strings are not interned.

まとめ
以上がC#のString型のIsInternedメソッドの使い方についての説明でした。
IsInternedメソッドは、指定した文字列がインターンされているかどうかを調べるためのメソッドで、文字列がインターンされている場合にその文字列を返し、そうでない場合にはnullを返します。
また、IsInternedメソッドは文字列リテラルに対してのみインターンを保証し、文字列操作によって生成された文字列はインターンされない可能性があるという点を覚えておくと良いでしょう。

最後まで読んで頂き、ありがとうございました。少しでもお役に立てたなら幸いです!

ぜひこちらの記事もご覧ください!!
転職回数4回(独立系⇒メーカー系⇒社内SE⇒SES)の私がSESのメリットについて書きました!
私は下記のサイトで現在の働き方、フルリモート(週5)の企業に出会うことができました。
今でもとても感謝しています!カウンセリングは無料なので、ぜひどうぞ!
C#のLinqをさらに学びたい方へ
C#のLinqを理解して頂くために参考書を執筆致しました!
Linqの演習問題はこちらの参考書に載せているので、問題を解いて理解を深めたい方はこちらの参考書チェックしてください!
下記の画像をクリック!!kindleunlimitedの会員であれば無料で見れます!
⇩初心者向け ⇩中級者向け
C#でChatGPTAPIを使ってブログ作成を自動化しませんか?
この記事は90%~100%ChatGPTで作られています。
この記事は90%~100%ChatGPTで作られています。
この記事は90%~100%ChatGPTで作られています。