String.Intern(String) Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Извлекает системную ссылку на указанный объект String.
public:
static System::String ^ Intern(System::String ^ str);
public static string Intern (string str);
static member Intern : string -> string
Public Shared Function Intern (str As String) As String
Параметры
- str
- String
Строка для поиска в пуле интернирования.
Возвращаемое значение
Системная ссылка на значение str
, если оно уже интернировано; в противном случае возвращается новая ссылка на строку со значением str
.
Исключения
str
имеет значение null
.
Примеры
В следующем примере используются три строки, равные по значению, чтобы определить, равны ли вновь созданная строка и интернированная строка.
// Sample for String::Intern(String)
using namespace System;
using namespace System::Text;
int main()
{
String^ s1 = "MyTest";
String^ s2 = (gcnew StringBuilder)->Append( "My" )->Append( "Test" )->ToString();
String^ s3 = String::Intern( s2 );
Console::WriteLine( "s1 == '{0}'", s1 );
Console::WriteLine( "s2 == '{0}'", s2 );
Console::WriteLine( "s3 == '{0}'", s3 );
Console::WriteLine( "Is s2 the same reference as s1?: {0}", s2 == s1 );
Console::WriteLine( "Is s3 the same reference as s1?: {0}", s3 == s1 );
}
/*
This example produces the following results:
s1 == 'MyTest'
s2 == 'MyTest'
s3 == 'MyTest'
Is s2 the same reference as s1?: False
Is s3 the same reference as s1?: True
*/
// Sample for String.Intern(String)
using System;
using System.Text;
class Sample
{
public static void Main()
{
string s1 = "MyTest";
string s2 = new StringBuilder().Append("My").Append("Test").ToString();
string s3 = String.Intern(s2);
Console.WriteLine($"s1 == {s1}");
Console.WriteLine($"s2 == {s2}");
Console.WriteLine($"s3 == {s3}");
Console.WriteLine($"Is s2 the same reference as s1?: {(Object)s2 == (Object)s1}");
Console.WriteLine($"Is s3 the same reference as s1?: {(Object)s3 == (Object)s1}");
}
}
/*
This example produces the following results:
s1 == MyTest
s2 == MyTest
s3 == MyTest
Is s2 the same reference as s1?: False
Is s3 the same reference as s1?: True
*/
// Sample for String.Intern(String)
open System
open System.Text
let s1 = "MyTest"
let s2 = StringBuilder().Append("My").Append("Test").ToString()
let s3 = String.Intern s2
printfn $"s1 = {s1}"
printfn $"s2 = {s2}"
printfn $"s3 = {s3}"
printfn $"Is s2 the same reference as s1?: {s2 :> obj = s1 :> obj}"
printfn $"Is s3 the same reference as s1?: {s3 :> obj = s1 :> obj}"
(*
This example produces the following results:
s1 = MyTest
s2 = MyTest
s3 = MyTest
Is s2 the same reference as s1?: False
Is s3 the same reference as s1?: True
*)
Imports System.Text
Class Sample
Public Shared Sub Main()
Dim s1 As String = "MyTest"
Dim s2 As String = New StringBuilder().Append("My").Append("Test").ToString()
Dim s3 As String = String.Intern(s2)
Console.WriteLine($"s1 = {s1}")
Console.WriteLine($"s2 = {s2}")
Console.WriteLine($"s3 = {s3}")
Console.WriteLine($"Is s2 the same reference as s1?: {s2 Is s1}")
Console.WriteLine($"Is s3 the same reference as s1?: {s3 Is s1}")
End Sub
End Class
'
's1 = MyTest
's2 = MyTest
's3 = MyTest
'Is s2 the same reference as s1?: False
'Is s3 the same reference as s1?: True
'
Комментарии
Дополнительные сведения об этом API см. в разделе Дополнительные примечания API для String.Intern.