C# | Cómo recuperar una referencia a una string específica

El método String.IsInterned(String) Method se utiliza para recuperar una referencia a una string especificada. Este método busca la string especificada en el grupo interno. 
Si la string especificada ya se ha internado, se devuelve una referencia a esa instancia. De lo contrario, se devuelve nulo. Aquí, el grupo interno es una tabla que contiene una sola instancia de cada constante de string literal única declarada en un programa, así como cualquier instancia única de String que agregue mediante programación llamando al método Intern .

Nota: La principal diferencia entre el método String.Intern(String) y el método String.IsInterned(String) es que el método Intern devuelve una referencia si la string no existe agregando una referencia de la string especificada al grupo interno. Pero el método IsInterned devuelve nulo si la string no existe.

Sintaxis: 

public static string IsInterned (string strA);

Aquí, strA es una string que se usa para buscar en el grupo interno.

Valor de retorno: el tipo de retorno de este método es System.String . Este método devolverá una referencia a strA si está presente en el grupo interno de CLR (Common Language Runtime). De lo contrario, devuelve nulo.

Excepción: este método dará ArgumentNullException de str es nulo.

A continuación se dan algunos ejemplos para entender la implementación de una mejor manera: 

Ejemplo 1: 

C#

// 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)
        {
 
            // retrieve 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);
        }
    }
}

Producción: 

Tuesday: Yes
Wednesday: Yes
Thursday: Yes
Monday-day: No

Ejemplo 2:

C#

// 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)
        {
 
            // retrieve 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);
        }
    }
}

Error de tiempo de ejecución:

Excepción no controlada: 
System.ArgumentNullException: el valor no puede ser nulo. 
Nombre del parámetro: str 
 

Referencia:  

Publicación traducida automáticamente

Artículo escrito por ankita_saini y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *