ЗНАЕТЕ ИНТУИТ, лекция, променливи и изрази

Декларация за променлива

Тясната връзка между типовете и класовете в C # беше обсъдена в предишната лекция. Съществува също толкова тясна връзка между променливите и обектите. Така че, когато става въпрос за променлива от тип стойност, тогава в много ситуации тя може да играе ролята на обект от някакъв клас. В тази глава дискусията ще бъде свързана със скаларни променливи на вградените типове. Всички променливи трябва да бъдат декларирани, преди да се появят в изчисленията. Нека да разгледаме как се прави това в C #.

Променлив проект

Както обикновено, се създава специален проект, който да разглежда примери. В тази глава това е конзолен проект, наречен Променливи. Класът по подразбиране Class1 съдържа входната точка Main. Класът Testing, добавен към проекта, съдържа набор от скаларни променливи и методи, които тестват различни аспекти на работа със скаларни променливи в C #. В основната процедура се създава обект от класа Тестване и на свой ред се извикват неговите методи, всеки от които е предназначен да илюстрира определени моменти на работа.

Първият ред декларира променливите x и s с мързелива инициализация. Забележете (и това е важно!), Че всеки опит за използване на променлива, която все още не е инициализирана в дясната страна на операторите за присвояване, при извиквания на функции, като цяло при изчисленията води до грешка още на етапа на компилация.

Не трябва да отлагате инициализацията, както показва примерът с променливата s, декларирана с мързелива инициализация. При изчисления той получава стойност два пъти: веднъж в оператора if, а другият в оператора за цикъл for. Компилацията обаче ще генерира грешка, в която се посочва, че процедурата WriteLine се опитва да използва неинициализирана променлива s. Това се дължи на факта, че условията, които зависят от променливи, не се оценяват за операторите if и за етапите на компилация. Следователно компилаторът приема най-лошото - условията са неверни и s не се инициализира в тези оператори. И нашият компилатор следи стриктно инициализацията, просто знаете!

Живот и обхват на променливите

Първата най-важна роля на променливите е, че те задават свойствата на структурите, интерфейсите, класовете. В C # такива променливи се наричат ​​полета. Структури, интерфейси, класове, полета - по-голямата част от този курс ще бъде посветен на разглеждането на тези концепции и сега ще дам само минимална информация, свързана с разглежданата тема. Полетата се декларират при описване на клас (и неговите специални случаи - интерфейс, структура). Когато конструкторът на клас създава друг обект - екземпляр на клас, той създава набор от полета, дефинирани от класа в динамична памет и записва в тях стойностите, които характеризират свойствата на този конкретен екземпляр. Така всеки обект в паметта може да се разглежда като набор от съответни полета на класа със собствени стойности. Животът и обхватът на полетата се определят от обекта, към който принадлежат. Обектите на купчина без свързана с тях референтна променлива стават недостъпни. Те всъщност прекратяват съществуването си, когато събирачът на боклук извършва почистване на купчина. За типовете стойности, към които принадлежат екземплярите на структури, животът приключва, когато блокът, в който са декларирани, завършва.