Freigeben über


String.IsInterned-Methode

Ruft einen Verweis auf einen angegebenen String ab.

Namespace: System
Assembly: mscorlib (in mscorlib.dll)

Syntax

'Declaration
Public Shared Function IsInterned ( _
    str As String _
) As String
'Usage
Dim str As String
Dim returnValue As String

returnValue = String.IsInterned(str)
public static string IsInterned (
    string str
)
public:
static String^ IsInterned (
    String^ str
)
public static String IsInterned (
    String str
)
public static function IsInterned (
    str : String
) : String

Parameter

Rückgabewert

Ein String-Verweis auf str, wenn sich dieser im Internpool der Common Language Runtime befindet, andernfalls NULL (Nothing in Visual Basic).

Ausnahmen

Ausnahmetyp Bedingung

ArgumentNullException

str ist NULL (Nothing in Visual Basic).

Hinweise

Die Common Language Runtime verwaltet automatisch eine Tabelle, den so genannten "Internpool", der eine einzige Instanz jedes im Programm deklarierten eindeutigen konstanten Zeichenfolgenliterals enthält, sowie jede eindeutige im Programm hinzugefügte Instanz von String.

Der Internpool erhält den Speicherplatz von Zeichenfolgen. Wenn Sie ein konstantes Zeichenfolgenliteral mehreren Variablen zuweisen, verweisen die Variablen nicht auf unterschiedliche Instanzen von String mit identischem Wert, sondern jede Variable verweist auf dieselbe Konstante innerhalb des Internpools.

Diese Methode sucht im Internpool nach str. Wenn sich str bereits im Internpool befindet, wird ein Verweis auf die dort befindliche Instanz zurückgegeben, andernfalls NULL (Nothing in Visual Basic).

Vergleichen Sie diese Methode mit der Intern-Methode.

Diese Methode gibt keinen booleschen Wert zurück, sie kann aber überall dort verwendet werden, wo ein boolescher Wert benötigt wird.

Beispiel

Im folgenden Codebeispiel wird veranschaulicht, dass Literalzeichenfolgen automatisch vom Compiler internalisiert werden.

' Sample for String.IsInterned(String)
Imports System
Imports System.Text

Class Sample
   Public Shared Sub Main()
      ' String str1 is known at compile time, and is automatically interned.
      Dim str1 As [String] = "abcd"
      
      ' Constructed string, str2, is not explicitly or automatically interned.
      Dim str2 As [String] = New StringBuilder().Append("wx").Append("yz").ToString()
      Console.WriteLine()
      Test(1, str1)
      Test(2, str2)
   End Sub 'Main
   
   Public Shared Sub Test(sequence As Integer, str As [String])
      Console.Write("{0}) The string, '", sequence)
      Dim strInterned As [String] = [String].IsInterned(str)
      If strInterned Is Nothing Then
         Console.WriteLine("{0}', is not interned.", str)
      Else
         Console.WriteLine("{0}', is interned.", strInterned)
      End If
   End Sub 'Test
End Class 'Sample '
'This example produces the following results:
'
'1) The string, 'abcd', is interned.
'2) The string, 'wxyz', is not interned.
'
// Sample for String.IsInterned(String)
using System;
using System.Text;

class Sample {
    public static void Main() {
// String str1 is known at compile time, and is automatically interned.
    String str1 = "abcd";

// Constructed string, str2, is not explicitly or automatically interned.
    String str2 = new StringBuilder().Append("wx").Append("yz").ToString();
    Console.WriteLine();
    Test(1, str1);
    Test(2, str2);
    }

    public static void Test(int sequence, String str) {
    Console.Write("{0}) The string, '", sequence);
    String strInterned = String.IsInterned(str);
    if (strInterned == null)
        Console.WriteLine("{0}', is not interned.", str);
    else
        Console.WriteLine("{0}', is interned.", strInterned);
    }
}
/*
This example produces the following results:

1) The string, 'abcd', is interned.
2) The string, 'wxyz', is not interned.
*/
// Sample for String::IsInterned(String)
using namespace System;
using namespace System::Text;
void Test( int sequence, String^ str )
{
   Console::Write( "{0} The string '", sequence );
   String^ strInterned = String::IsInterned( str );
   if ( strInterned == nullptr )
      Console::WriteLine( "{0}' is not interned.", str );
   else
      Console::WriteLine( "{0}' is interned.", strInterned );
}

int main()
{
   
   // String str1 is known at compile time, and is automatically interned.
   String^ str1 = "abcd";
   
   // Constructed string, str2, is not explicitly or automatically interned.
   String^ str2 = (gcnew StringBuilder)->Append( "wx" )->Append( "yz" )->ToString();
   Console::WriteLine();
   Test( 1, str1 );
   Test( 2, str2 );
}

/*
This example produces the following results:

1) The string 'abcd' is interned.
2) The string 'wxyz' is not interned.
*/
// Sample for String.IsInterned(String)
import System.*;
import System.Text.*;

class Sample
{
    public static void main(String[] args)
    {
        // String str1 is known at compile time, and is automatically interned.
        String str1 = "abcd";
        // Constructed string, str2, is not explicitly or automatically 
        // interned.
        String str2 = (new StringBuilder()).Append("wx").Append("yz").
            ToString();
        Console.WriteLine();
        Test(1, str1);
        Test(2, str2);
    } //main

    public static void Test(int sequence, String str)
    {
        Console.Write("{0}) The string, '", System.Convert.ToString(sequence));
        String strInterned = String.IsInterned(str);
        if (strInterned == null) {
            Console.WriteLine("{0}', is not interned.", str);
        }
        else {
            Console.WriteLine("{0}', is interned.", strInterned);
        }
    } //Test
} //Sample 
 /*
This example produces the following results:

1) The string, 'abcd', is interned.
2) The string, 'wxyz', is not interned.
*/

Plattformen

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile für Pocket PC, Windows Mobile für Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.

Versionsinformationen

.NET Framework

Unterstützt in: 2.0, 1.1, 1.0

.NET Compact Framework

Unterstützt in: 2.0, 1.0

Siehe auch

Referenz

String-Klasse
String-Member
System-Namespace
Intern