Ръчно C #, класове
А клас е шаблон, използван за дефиниране на формата на обекта. Тя съдържа данните и кода, който ще работи на данните. В C # използва спецификация клас за изграждане на обекти, които са копия на класа. Следователно, този клас, по същество се състои от серия от схематично описание на процеса за конструиране на обекта. Много е важно да се подчертае, че този клас е логическа абстракция. Физическото представяне на класа ще бъде в памет само след като обектът ще бъде създадена в този клас.
Класове и структури - е, всъщност, шаблони, които можете да създадете обекти. Всеки обект съдържа данни и методи, които манипулират данните.
Общата форма на дефиницията на клас
При определяне на класа са декларирани данни, които той съдържа, както и кода, който оперира на данните. Ако най-простите класовете могат да съдържат само код или само данни, повечето от тези класове да съдържа и двете.
Най-общо казано, данните, съдържащи се в тези условия. Дефинира клас, както и кода - в член функции. Следва да се подчертае, че в C # има няколко разновидности на членовете на данни и член-функции:
Тези държави
Тези членове - тези членове, които съдържат данни клас - ниви, константи, събития. Тези членове могат да бъдат статични (статично). А член на клас е член на инстанция, ако тя не е обявена изрично като статична. Нека да разгледаме тези типове данни:
Това е всички променливи, свързани с класа.
Константите могат да бъдат свързани с класа по същия начин, както променливи. Константата е обявен с помощта на CONST ключова дума. Ако тя е обявена за публична, в този случай тя е на разположение извън клас.
Този клас членове, което позволява обектът да уведоми обаждащия се, че има нещо да се спомене, например, промяна на свойствата на един клас или взаимодействие с потребителя. Клиентът може да има код, известен като манипулатор на събитие, което реагира на тях.
Функции държави
Държавите функции - тя е на членовете, които предоставят някои функции за данни боравене клас. Те включват методи, свойства, конструктори, finalizers, индексатори и операции:
Той разполага свързан с определен клас. Както и членовете на данни, по подразбиране, те са членове на потребителския модел. Те могат да бъдат декларирани като статични използване на статично модификатор.
Това определя от функции, които могат да бъдат на разположение на клиента по същия начин, както полета обществена класа. специален синтаксис за изпълнение на четене и запис на свойствата за класовете, предвидени в C #, така че пиша свои собствени методи с имена, които започват с Get Set, и, няма нужда. Тъй като има някои отделни синтаксис за имоти, които са различни, за да ги от нормалните функции, тя създава илюзията за предмети, тъй като реално лице, при условие на клиента код.
Това са специални функции, наречени автоматично, когато обектът се инициализира. Техните имена съвпадат с имената на класовете, към която принадлежат, и те не разполагат с връщания тип. Конструкторите са полезни за инициализиране на полета на класа.
Наречен, когато CLR установи, че вече не е необходимо на обекта. Те имат същото име като на класа, но предшестван от Тилда. Предвиждането точно когато finalizer ще се нарича невъзможно.
Тези прости действия като + или -. Когато добавите две цели числа, а след това, строго погледнато, прилага оператора + към цялото. Въпреки това, C # ви позволява да определите как съществуващи операции ще работят с потребителски класа (така наречената операция претоварване).
Позволете на обектите индексирани по същия начин, както на масива или събиране.
Класът е създаден с помощта на класа ключова дума. По-долу е общата форма на дефиницията на прост клас, който съдържа само инстанция променливи и методи:
Нека разгледаме един пример за създаване на клас, който описва характеристиките на потребителя:
В този пример, потребителят определя нов клас USERINFO, която съдържа четири полета и един метод, които са отворени (т.е., съдържа модификатор публичния достъп). При метода на Main () създава две инстанции на този клас: myInfo и myGirlFriendInfo. След това, инициализира данни и инстанция полета, причинени метод writeInConsoleInfo ().
Преди да продължа, имайте предвид следното основния принцип: всеки обект има свои копия на променливите на инстанция, определени в своя клас. Следователно, съдържанието на променливи в един обект може да се различава от съдържанието на друг обект. Между двата обекта няма връзка, с изключение на факта, че те са обекти от същия тип. Така че, ако има два типа на обекта на USERINFO, а след това всеки един от тях има своя собствена копие на променливите Име, фамилия, възраст и Адресс и тяхното съдържание в двата сайта могат да бъдат различни: