String.IsInterned(String) Method method is used to retrieve a reference to a specified String. This method looks up the specified string in the intern pool.
If the specified string has already been interned, a reference to that instance is returned. Otherwise, null is returned. Here the intern pool is a table that contains a single instance of each unique literal string constant declared in a program, as well as any unique instance of String you add programmatically by calling the Intern method.
Note: The main difference between String.Intern(String) Method and String.IsInterned(String) Method is that Intern method returns a reference if the string doesn’t exist by adding a reference of the specified string to the intern pool. But the IsInterned method returns null if the string doesn’t exist.
Syntax:
public static string IsInterned (string strA);
Here, strA is a string which is used to search for in the intern pool.
Return Value: The return type of this method is System.String. This method will return a reference to strA if it is present in the CLR(Common Language Runtime) intern pool. Otherwise, return null.
Exception: This method will give ArgumentNullException of the str is null.
Below given are some examples to understand the implementation in a better way:
Example 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); } } } |
Output:
Tuesday: Yes Wednesday: Yes Thursday: Yes Monday-day: No
Example 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); } } } |
Runtime Error:
Unhandled Exception:
System.ArgumentNullException: Value cannot be null.
Parameter name: str
Reference: