Дастур ишга тушганидан кейин бошқарув узатиладиган методнинг номи Мain, типи эса статик бўлиши керак. Бу метод ташқаридан параметрларни қабул қилиши ва ўзини чақирган муҳитга қийматлар қайтариши керак. Унинг икки хил варианти (параметрли ва параметрсиз) мавжуд:
// параметрсиз: static тип Main() { ... } static void Main() { ... } // с параметрами: static тип Main( string[] args ) { /* ... */ } static void Main( string[] args ) { /* ... */ } Бир-биридан бўш жой белгиси билан ажратилган параметрлар дастур ишга тушганда буйруқлар сатрида дастур номидан кейин кўрсатилади. Ва бу параметрлар args массивига узатилади.
Агар метод қиймат қайтарса, у бутун типда, қайтармаса void типида бўлиши керак. Одатда нол бўлмаган қийматлар аварияли якунланганликни англатади. Қайтариладиган қиймат буйруқли дастур ишга тушириладиган файлда таҳлил қилинади. Одатда бу амал буйруқли файлни бажаришни давом этитриш керакми ёки йўқми? деган саволга жавоб топиш мақсадида бажарилади. 19.2-листингда келтирилган Main методи ўз аргументларини чиқаради ва иҳтиёрий клавишани босилишини кутади.
using System;
namespace ConsoleApplication1
{ class Class1
{ static void Main( string[] args )
{
foreach( string arg in args ) Console.WriteLine( arg );
Console.Read();
}
}
}
19.2-листинг. Main методи параметрлари
Индексаторлар ҳусусиятларнинг яна бир тури ҳисобланади. Агар классда массивларни ифодаловчи ёпиқ майдонлар мавжуд бўлса, у холда индексаторлар ёрдамида шу массив элементларига мурожаат қилиш мумкин. Бунинг учун объектнинг номи ва массив элементи номерини квадрат қавслар ичида кўрсатиш керак. Бошқача айтганда, индексаторлар – объектлар учун “ақлли” индекс ҳисобланади.
Индексаторларнинг ёзилиши ҳусусиятларни ёзишга ўхшаб кетади:
атрибутлар спецификаторлар тип this [ параметрлар _рўйхати ]
{
get очиқлик _коди
set очиқлик _коди
}
Индексаторлар кўпинча public спецификатори билан биргаликда эълон қилинади. Бунда атрибут ва спецификаторларни тушириб қолдириш мумкин.
Очиқлик коди массив элементини yoki ўқиш (get)ёки қиймат ёзиш (set) буйруғи билан бажариладиган операторлар блогидан иборат бўлади. Кўпинча ёки get қисми, ёки set қисми тушириб қолдирилиши мумкин, аммо бу икки қисмни бир вақтда тушириб қолдириб бўлмайди. Агар set қисми тушириб қолдирилган бўлса, у холда индексатор фақат ўқиш учун (read-only), агар get тушириб қолдирилган бўлса индексатор фақат ёзиш учун (write-only) очиқ бўлади.
Параметрлар рўйхати бир ёки бир нечта индеклар тавсифидан иборат бўлиб, қайси элементларнинг очиқлигини кўрсатиш учун хизмат қилади. Кўпинча бутун типдаги индекслардан фойдаланрилади.
Асосан индексаторлар махсуслаштирилган массивларни яратиш учун қўлланиолади ва бу массивларга қандайдир чекловлар қўйилади.
C# дастурлаш тилида кўп ўлчовли индексаторлар билан ишлаш ҳам мумкин. Улардан хам худди индексаторлар каби фойдаланиш мумкин ва асосан кўп ўлчовли массивларга маълумотлар киритишни назорат қилишда хамда класс сифатида ташкил қилинган кўп ўлчовли массивлардан элементлар танлаш учун қўлланади. в многомерные массивлар и выборке данных из многомерных массивов, оформленных в виде классов.