String.IsInterned(String)方法方法用于检索对指定String的引用。此方法在内部缓冲池中查找指定的字符串。
如果指定的字符串已经被插入,则返回对该实例的引用。否则,返回null。在这里,内部缓冲池是一个表,其中包含程序中声明的每个唯一字面量字符串常量的单个实例,以及通过调用Intern方法以编程方式添加的String的任何唯一实例。
注意: String.Intern(String)方法和String.IsInterned(String)方法之间的主要区别在于,如果不存在该字符串,则通过将指定字符串的引用添加到内部缓冲池,Intern方法将返回一个引用。但是,如果字符串不存在,则IsInterned方法将返回null。
句法:
public static string IsInterned (string strA);
在这里, strA是一个字符串,用于在内部池中进行搜索。
返回值:该方法的返回类型为System.String 。如果strA在CLR(公共语言运行时)内部缓冲池中存在,则此方法将返回对strA的引用。否则,返回null。
异常:此方法将使str的ArgumentNullException为null。
下面给出了一些示例,以更好地理解实现:
范例1:
// C# program to check if the given
// string is in intern pool or not
using System;
class GFG {
// main method
public static void Main()
{
// strings
string str1 = "Monday";
string str2 = str1 + "-day";
string[] pool = {"Tuesday", "Wednesday",
"Thursday", str2};
// checking in intern pool
foreach(var item in pool)
{
// retrive reference of strings
bool value = String.IsInterned(item) != null;
if (value)
// if the string in intern pool then print
Console.WriteLine("{0}: Yes", item);
else
// if string in not intern pool then print
Console.WriteLine("{0}: No", item);
}
}
}
输出:
Tuesday: Yes
Wednesday: Yes
Thursday: Yes
Monday-day: No
范例2:
// C# program to check if the given
// string is in intern pool or not
using System;
class GFG {
// main method
public static void Main()
{
// strings
string str1 = "Geeks";
string str2 = str1 + "-day";
// this will give error as
// null is present in pool
string[] pool = {"GFG", "DSA",
"C#", null};
// checking in intern pool
foreach(var item in pool)
{
// retrive reference of strings
bool value = String.IsInterned(item) != null;
if (value)
// if the string in intern pool then print
Console.WriteLine("{0}: Yes", item);
else
// if string in not intern pool then print
Console.WriteLine("{0}: No", item);
}
}
}
运行时错误:
Unhandled Exception:
System.ArgumentNullException: Value cannot be null.
Parameter name: str
参考:
- https://docs.microsoft.com/zh-cn/dotnet/api/system。字符串.isinterned?view = netframework-4.7.2#System_String_IsInterned_System_String_