- •1. .Net архитектурасы.Net-ке бағытталған кодтын орындалуы және компиляциясы. Microsoft Intermediate Language (msil) тілінің артықшылықтары.
- •3. С# программалау тілінің негізі. Айнымалыларды жариялау. Айнымалыларды инициялизациялау олардың көріну облысы.
- •5. Консольді енгізу-шығару үшін System.Console-ді пайдалану. Процессор директивтері.
- •6. Объекті/ ж/е типтер. Структура және кластардың өзара айырмашылық/ы. Класс мүшелері.
- •8. Конструкторлар және статикалық конструкторлар. Тек оқуға рұқсат етілген өріс.
- •9. Жекеленген кластар. Статикалық кластар. Object класы.
- •10. Мұралау. Мұралау типі. Іске асыруды (реализация) мұралау.
- •11. Мұралау. Рұқсат модификаторлары. Интерфейстер.
- •12. Жалпылау. Жалпылауға шолу. Жалпыланған кластар құру.
- •13. Жалпыланған кластар құралдары. Жалпыланған интерфейстер.
- •14. Жалпыланған структуралар. Жалпыланған әдістер.
- •15. Массивтер және кортеждер. Жай массивтер. Көпөлшемді массивтер.
- •16. Тісті массивтер. Array класы.
- •17. Массивтер параметр ретінде. Тізім бойынша санау.
- •18. Кортеждер. Құрылымдық салыстыру.
- •20. Мәліметтердің қарапайым типтерін өзара өзгерту. Қаптама(boxing) құралдарымен мәндер типін сілтеме типке өзгерту.
- •21. Сілтеме типтерді келтіру арқылы өзгерту. Стандартты операцияларды қолданушы типтер үшін асыра жүктеу.
- •Vector структурасы
- •22. Келтіру операцияларын қолданушы типтерге қосу.
- •23. Делегаттар. Лямбда-өрнектер. Уақиғалар.
- •24. Сөз тіркесін құру. Жүйелі өрнектер.
- •25. Сөз тіркесін құру. Форматтаушы өрнектер.
- •26.Интерфейстер және коллекциялар типтері. Тізім, кезек және стектермен жұмыс.
- •27. Сортталған және жүйелі тізімдермен жұмыс. Жиындар мен сөздікті пайдалану.
- •29. Қателер және ерекшеліктер. Ерекшеліктерді өңдеу.
- •30. .Net ядросы. Деректер базасына қосылу. Команданы орындау.
16. Тісті массивтер. Array класы.
Тісті массивтер. Екіөлшемді массив тікбұрышты формада болады. Тісті массив өлшеміне қарағанда майысып тұрады. Мұндай массивтерде әрбір жол өлшемдері өзгеше болуы мүмкін. Төмендегі мысалда 3х3 екіөлшемді массиві мен 1жол 2элементтен, 2жол 6, 3жол 3элементтен тұратын тісті массив көрсетілген.
Тісті массивтерді инициализациялау кезінде бірінші тік жақшада жолдар санын анықтайтын өлшем көрсетіледі. Жолдағы элемент/ санын анықтайтын екінші тік жақша бос қалдырылады, себебі олардың элементтерінің саны әртүрлі болуы мүмкін. Мысалы,
Int [] [] jagged = new int [3] [];
jagged [0] = new int [2] {1, 2};
jagged [1] = new int [6] {3, 4, 5, 6, 7, 8};
jagged [2] = new int [3] {9, 10, 11};
Array класы. Массивтерді құруға, өзгертуге, іздеуге және сұрыптауға арналған әдістерді береді, яғни CLR ортасында барлық массивтерге базалық класс ролінде қызмет атқарады.
Мұралау иерархиясы
System.Object System.Array
Синтаксисі
[SerializableAttribute]
[ComVisibleAttribute(true)]
public abstract class Array : ICloneable,
IList, ICollection, IEnumerable, IStructuralComparable, IstructuralEquatable
Array класы массивтермен жұмыс жасайтындарға ғана базалық болып табылады. Array класынан тек қана жүйе мен компиляьор мұралай алады. Қолданушылар программалау тілі ұсынатын массив конструкцияларын қолдануы керек.
//Класс Array
int[ ] ar1 = new int[5];
double[ ] ar2 ={5.5, 6.6, 7.7};
int[ , ] ar3 = new Int32[3,4];
Массиві бар барлық класстар System.Array класының мұрагерлері болып табылады. System.Array класы бірқатар интерфейстерді мұралайды: ICloneable, IList, ICollection, Enumerable, және класс олардың барлық қасиеттері мен әдістерін іске асыру қажет. Object класы мен көрсетіліп кеткен интерфейстердің қасиеттері мен әдістерінен басқа, өзінің де біршама қасиеттері мен әдістері бар.
17. Массивтер параметр ретінде. Тізім бойынша санау.
Массивтер параметр әдісімен беріле алады және әдістен шыға алады.Массивтің қайтарылуы үшін қайтару типі ретіне массивті шақыру жеткілікті.Ол GetPersons( ) әісінде былай көрсетілген:
Static Person[ ] GetPersons ( )
{
Return new Person [ ] {
New Person { FirstName=”Damon”, LastName=”Hill”},
New Person { FirstName=”Niki”, LastName=”Lauda”},
New Person { FirstName=”Ayrton”, LastName=”Senna”},
New Person { FirstName=”Graham”, LastName=”Hill”}
};
}
Массивтің берілуі үшін параметре шақырылады, DisplayPersons ( ):
Static void DispayPersons ( Person [ ] persons )
{
// …
Массивтің коварианттылығы
Массивтің коварианттылығы дегеніміз – бұл массивтің базалық тип ретінде шақырылуы және оның элементі болып туынды элементтер саналады.Мысал:
Static void DisplayArray ( object [ ] data )
{
// …
}
Массивтерің коварианттылығы сілтеме типтер үшін ғана мүмкін.
Сапалы параметрлер массивы
Массивті параметрдің сапасына қарай әдіске береді және әдістен қайтарады.Массивті қайтару үшін жариялау типіне массивті қайтару жеткілікті,келесіде көрсетілгендей GetPersons():
static Person[] GetPersons()
return new Person[] (
new Person ( FirstName=“Damon“, LastName="Hill“ ), new Person (FirstName=“Niki“, LastName=“Lauda“), new Person ( FirstName=“Ayrton", LastName=“Senna“ }, new Person ( FirstName="Graham", LastName="Hill" }
Массивті жіберу ,массивтің параметірде хабарлау әдісі DisplayPersons() :
static void DisplayPersons(Person[] persons)
Тізімдер
Foreach оператордың көмегімен итерацяны оның элементінің санының қажетінсіз коллекция элементімен орындауға болады. Loreach операторы нөмірлеуге қолданылады(enumerator).6.7 суретте Loreach шақырылған және коллекция арасындағы қарым қатынас көрсетілген.GetEnumerator()-дыңкөмегімен IEnume rable интерфейсі арқылы массив пен коллекция құрылады.
Интерфейс IEnumerator
To reach әдісі IEnumerator интерфейс әдістері үшін қадамның барлық элементтеріне қолданылады. Бұл интерфейстің толық нұсқасы IEnumerator <T> , IDisposable интерфейсінің жалғасы,сондықтан нөмірлеуші үшін көшірілген ресурстарды нөмірлеу үшін Dispose әдісін анықтайды.
Енді жиынтық және игерушілік операторы foreach итерациясынның мүмкіндіктерін қарастырамыз:
Public void HelloWorld()
{var helloCollection=new HelloCollection();
Foreach(string s in helloCollection)
{Console.WriteLine(s);
} }
Блоктағы итератор компилятор yield типін түсіндіреді,соңынан жылдам қосады,фрагменттегі кодтың қалай екенін көрсетеді.Yield типі шындығында IЕnumerator және IDisposable интерфейс әдістерінің құрылымы.Мысалда біз yield типінің ішкі классы Enuterator екенін көреміз.GetEnuterator әдісі кластарды құрады және yield типін қайтарады. Yield типінің ішінде уақытынша state итераторын анықтайды және әрқайсысын өзгертеді, MoveNext() әдісін шақырған кезімізде. MoveNext() Әдісімен итератордағы блоктың кодынның мағынасын орнатады және объектісінің құрлымын қайтарады,айқындамаға тәуелді болады.
Итерацияның түрлі әдістерін жиынтықта қолдану
Көлемді және шындық мысалды жоғарыда келтіргеніміздей yield операторы арқылы кластарды жеңіл әрі жиынтықтағы итерация әдісімен орындау оңайырақ. MusicTitles класы итерацияны GetEnumerator() әдісі арқылы шақырады, Reverse () әдісі болса қайтадан ретке келтіреді және Subset () әдісі көптік итерацияларға көмектеседі.
