Типтиң ўазыйпалары, маңызы, ағзалары, ағзаларға мүражет қылыў. Типтиң өзгешеликлери.
Ссылочные и значимые типы CLR поддерживает две разновидности типов: ссылочные (reference types) и значимые (value types). Большинство типов в FCL(….) - ссылочные, но программисты чаще всего используют значимые. Память для ссылочных типов всегда выделяется из управляемой кучи, а оператор С# new возвращает адрес в памяти, где размещается сам объект. При работе со ссылочными типами имейте в виду следующие обстоятельства, относящиеся к производительности приложения:
память для ссылочных типов всегда выделяется из управляемой кучи;
каждый объект, размещаемый в куче, имеет некоторые дополнительные члены, подлежащие инициализации;
незанятые полезной информацией байты объекта обнуляются (это касается полей);
размещение объекта в управляемой куче со временем инициирует сборку мусора.
CLR муҳити иккита хил турни қўллаб қўвватлайди: силтамали(reference types) ва маъноли турлар(value types). FCL да турларнинг барчаси силтамали, лекин дастурчилар кўпроқ маъноли турларни фойдаланади. Силтамали учун хотира доимо бошқарилувчи уюмнан жой ажратади, C# new оператори эса объектнинг узи жойлашган хотирага адресини қайтаради. Силтамали турлар билан ишлашда илованинг унумдорлигига оид қўйидаги вазиятларни ҳисобга олиш зарур:
Силтамали турлар учун хотира доимо бошқарилувчи уюмнан ажратилади;
Бошқарилувчи уюмдаги ҳар бир объект инициализация қилиниши керак бўлган бир қанча қўшимча аъзоларга эга бўлади;
Объектнинг фойдали ахборот билан банд эмас байтлари нольга айланади(бу мойданлорга тегишли);
бошқарилувчи уюмга объектнинг жойлаштирилиши вақт ўтиши билан аҳлатни йиғишни инициализациялайди.
Агар турларнинг барчаси силтама бўлганда илованинг самарадорлиги кескин тушиб кетган бўларди. Шу сабабдан CLR мухити турларни қайта ишлашни тезлатиш учун «енгиллатилган» турларни – маъноли турларни тавсия қилади. Ўзгарувчини англатувчи экземплярда уни курсатувчи кўрсаткиш бўлмайди, экземпляр мойданлари ўзгарувчининг ўзида жойлашади. Ўзгарувчининг ўзи экземпляр мойданларини ичига олгани сабабли экземпляр билан ишлашда экземплярни қайтадан номлаш(қайта силташ-dereference) керак эмас. Маъноли турларнинг экземплярлари ахлат йиғувчилар томанидан қайта ишланмаслиги туфайли бошқарилувчи уюмлар билан ишлашнинг сурати пасаяди ва коллекциялар (collections) сони қисқаради.
.NET Framework ҳужжатларида қайси турлар силтама ёки маъноли турларга ётишини дарҳол кўриш иумкин. Агар тур синф (class) деб номланса, силтама тур ҳақида айтилган бўлади. Масалан System Object, System.Exception, System.IO.FileStream ва System.Random синфлари - булар силтама турлар. Ўз навбатида ҳужжатларда маъноли турларни структуралар (structure) ва санаб ўтилган (enumeration) турлар деб номлаган. Масалан, структуралар System.Int32, System.Boolean, System.Decimal, System.TimeSpan ва санаб ўтилган турлар System.DayOfWeek, System.IO. FileAttributes ва System.Drawing.FontStylе лар маъноли турларга ётади.
Члены типов
В типе можно определить следующие члены.
Константа - идентификатор, определяющий некую постоянную величину. Эти идентификаторы обычно используют, чтобы сделать код более читабельным, а также для удобства сопровождения и поддержки. Константы всегда связаны с типом, а не с экземпляром типа. Константы всегда статичны.
Do'stlaringiz bilan baham: |