Net framework 5, а также среды Visual Studio 2012 и C#



Download 6,27 Mb.
Pdf ko'rish
bet258/658
Sana12.06.2023
Hajmi6,27 Mb.
#950840
1   ...   254   255   256   257   258   259   260   261   ...   658
Bog'liq
CLR via C Programmirovanie na platforme Microsoft NET Framework 4 5 na yazyke C

тип System.String
Один из самых полезных типов, встречающихся в любом приложении — 
System.
String
, — представляет неизменяемый упорядоченный набор символов. Будучи 
прямым потомком 
Object
, он является ссылочным типом, по этой причине стро-
ки всегда размещаются в куче и никогда — в стеке потока. Тип 
String
реализует 
также несколько интерфейсов (
IComparable/IComparable

ICloneable

IConvertible

IEnumerable
/
IEnumerable
и 
IEquatable
).
создание строк
Во многих языках (включая C#) 
String
относится к примитивным типам, то есть 
компилятор разрешает вставлять литеральные строки непосредственно в исходный 
код. Компилятор помещает эти литеральные строки в метаданные модуля, откуда 
они загружаются и используются во время выполнения.
В C# оператор 
new
не может использоваться для создания объектов 
String
из 
литеральных строк:
using System;
public static class Program {
public static void Main() {
продолжение



360
Глава.14 .Символы,.строки.и.обработка.текста
String s = new String("Hi there."); // Ошибка
Console.WriteLine(s);
}
}
Вместо этого используется более простой синтаксис:
using System;
public static class Program {
public static void Main() {
String s = "Hi there.";
Console.WriteLine(s);
}
}
Результат компиляции этого кода можно посмотреть с помощью утилиты 
ILDasm exe
:
.method public hidebysig static void Main() cil managed
{
.entrypoint
// Code size 13 (0xd)
.maxstack 1
.locals init (string V_0)
IL_0000: ldstr "Hi there."
IL_0005: stloc.0
IL_0006: ldloc.0
IL_0007: call void [mscorlib]System.Console::WriteLine(string)
IL_000c: ret
} // end of method Program::Main
За создание нового экземпляра объекта отвечает IL-команда 
newobj
. Однако 
здесь этой команды нет. Вместо нее вы видите специальную IL-команду 
ldstr
(загрузка строки), которая создает объект 
String
на основе литеральной строки, 
полученной из метаданных. Отсюда следует, что объекты 
String
в CLR создаются 
по специальной схеме.
Используя небезопасный код, можно создать объект 
String
с помощью 
Char*
и 
SByte*
. Для этого следует применить оператор 
new
и вызвать один из конструк-
торов типа 
String
, получающих параметры 
Char*
и 
SByte*
. Эти конструкторы 
создают объект 
String
и заполняют его строкой, состоящей из указанного массива 
экземпляров 
Char
или байтов со знаком. У других конструкторов нет параметров-
указателей, их можно вызвать из любого языка, создающего управляемый код.
В C# имеется специальный синтаксис для включения литеральных строк в ис-
ходный код. Для вставки специальных символов, таких как конец строки, возврат 
каретки, забой, в C# используются управляющие последовательности, знакомые 
разработчикам на C/C++:
// String содержит символы конца строки и перевода каретки
String s = "Hi\r\nthere.";



Download 6,27 Mb.

Do'stlaringiz bilan baham:
1   ...   254   255   256   257   258   259   260   261   ...   658




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish