Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Использование встроенных типов данных




Как в любом языке программирования, в С# существует множество встроенных типов данных. С помощью этих типов можно представлять целочисленные числа и числа с плавающей запятой, строки символов и логические значения. Все типы в С# разделяются на две основные разновидности: структурные типы (value-based) и ссылочные типы (reference-based). К структурными типам относятся все числовые типы данных (int, float и пр.), а также перечисления и структуры. Память для структурных типов выделяется из стека. При присвоении одного структурного типа другому присваивается не сам тип (как область в памяти), а его побитовая копия. Ссылочные типы (классы и интерфейсы) ведут себя совершенно по-другому. Память для них выделяется не в стеке, а в области управляемой кучи. При копировании ссылочного типа создается еще одна ссылка, которая указывает на ту же область оперативной памяти.

 

 

13.Преобразование типов.

Приведение типа (typeconversion) — преобразование значения переменной одного типа в значение другого типа. Выделяют явное и неявное приведения типов.При явном приведении указывается тип переменной, к которому необходимо преобразовать исходную переменную.При неявном приведении преобразование происходит автоматически, по правилам, заложенным в данном языке программирования.Также в языке могут быть заданы специальные функции для приведения. А)Неявное приведениеСамо приведение происходит как во время присваивания значения переменной, так и при операциях сравнения, вычисления выражения. При использовании в выражении несколько различных типов значения одного или нескольких подтипов может быть осуществлено преобразование к более общему типу (супертипу), с большим диапазоном возможных значений.б)Явное приведение типа. Преобразование встроенных типовОбъекты одного типа могут быть преобразованы в объекты другого типа неявно или явно. Неявные преобразования происходят автоматически, компилятор делает это вместо вас. Явные преобразования осуществляются, когда вы «приводите» значение к другому типу. Неявные преобразования гарантируют также, что данные не будут потеряны.

 

 

14.Функциональные возможности класса System.Object. Корневой класс System.Object всей иерархии объектов.NET, называемый в С# object, обеспечивает всех наследников несколькими важными методами. Производные классы могут использовать эти методы непосредственно или переопределять их. Класс object часто используется и непосредственно при описании типа параметров методов для придания им общности, а также для хранения ссылок на объекты различного типа — таким образом реализуется полиморфизм.

Открытые методы класса System.Object перечислены ниже.

• Метод Equals с одним параметром возвращает значение true, если параметр и вызывающий объект ссылаются на одну и ту же область памяти. Синтаксис: public virtual bool Equals(object obj);

• Метод Equals с двумя параметрами возвращает значение true, если оба параметра ссылаются на одну и ту же область памяти. Синтаксис:

public static bool Equals(object obi, object ob2);

• Метод GetHashCode формирует хеш-код объекта и возвращает число, однозначно идентифицирующее объект. Это число используется в различных структурах и алгоритмах библиотеки. Если переопределяется метод Equals, необходимо перегрузить и метод GetHashCode. Подробнее о хеш-кодах рассказывается в разделе «Абстрактные структуры данных» Синтаксис: public virtual int GetHashCodeO;

• Метод GetType возвращает текущий полиморфный тип объекта, то есть не тип ссылки, а тип объекта, на который она в данный момент указывает. Возвращаемое значение имеет тип Туре. Это абстрактный базовый класс иерархии, использующийся для получения информации о типах во время выполнения1. Синтаксис: public Type Get Туре О;

• Метод ReferenceEquals возвращает значение true, если оба параметра ссылаются на одну и ту же область памяти. Синтаксис : public static bool(object obi, object ob2);

• Метод ToString по умолчанию возвращает для ссылочных типов полное имя класса в виде строки, а для значимых — значение величины, преобразованное в строку. Этот метод переопределяют для ого, чтобы можно было выводить информацию о состоянии объекта. Синтаксис: public virtual string ToStringO

 

Операторы выбора

Операторы ветвления if и switch применяются для тою чтобы в зависимости от конкретных значений исходных данных обеспечить выполнение разных последовательностей операторов. Оператор if обеспечивает передачу управления на одну из двух ветвей ычислений, а оператор switch — на одну из произвольного чиста ветвей.

Условный оператор if Условный оператор if используется для разветвления процесса вычислений па два направления

Формат оператора: if (логическоевыражение) оператор_1; [ else оператора; ]

Оператор s w i t c h (переключатель) предназначен для разветвления процесса вычислений на несколько направлений.

Формат оператора:

switch С выражение){

case константное_выражение_1: [ список_операторов_1 ]

case константное_выражение_2: [ список_операторов_2 ]

case константноевыражениеп: [ списокоператоровп ]

[ default: операторы ]

Оператор switch предпочтительнее оператора if в тех случаях, когда в программе требуется разветвить вычисления на количество направлений большее двух и выражение, по значению которого производится переход на ту или иную ветвь, не является вещественным. Часто это справедливо даже для двух ветвей, поскольку повышает наглядность программы.

 

Циклические операторы.

С# включает достаточно большой набор циклических операторов, таких как for, while, do...while, а также цикл с перебором каждого элемента foreach. Кроме того, С# поддерживает операторы перехода и возврата, например goto, break, continue и return.1) Оператор goto был основой для реализации других операторов цикла. Но он был и базой многократных переходов, вследствие чего возникла запутанность кода программы. Поэтому опытные программисты стараются его не использовать. 2) Эта циклическая инструкция работает по принципу: «Пока выполняется условие — происходит работа». Если результатом проверки условия является истина, то выполняется блок инструкций, в противном случае в результате выполнения программы while игнорируется.3) Бывают случаи, когда цикл while не совсем удовлетворяет вашим требованиям. Например, вы хотите проверять условие не в начале, а в конце цикла. В таком случае лучше использовать цикл do...while.. Разница состоит в том, что цикл do...while выполняется всегда минимум один раз, до того как произойдет проверка условия выражения. 4) Цикл for позволяет вам объединить все операции в одной инструкции.5) Цикл foreach используется для перебора массивов и объединений (collection) по элементам.6) break и continue Бывают ситуации, когда необходимо прекратить выполнение цикла досрочно или при каком то условии не выполнять описанные в теле цикла инструкции, не прерывая при этом цикла. Для этого удобно использовать инструкции break и continue. Если вы хотите на каком-то шаге цикла его прекратить, не обязательно выполняя до конца описанные в нем действия, то лучше всего использовать break.

 

 

Обработка исключений

Исключительная ситуация, или исключение, — это возникновение аварийного события, которое может порождаться некорректным использованием аппаратуры пли неправильной работой программы, например делением на ноль или переполнением. Обычно эти события приводят к завершению программы с системным сообщением об ошибке. С# дает программисту возможность восстановить работоспособность программы и продолжить ее выполнение. Как правило программист в своем проекте не может предсказать все действия пользователя, входные значения и многие другие параметры. А чем крупнее и серьезнее проект тем таких мест в приложении становится все больше и больше, поэтому перед программистом встает задача отловить и по возможность обработать все возможные ситуации неправильного выполнения код. Любое действие которое не может быть выполнено по той или иной причине называется исключение. Для этого в C# есть конструкция try.. catch. Оператор try содержит три части:

• контролируемый блок — составной оператор, предваряемый ключевым словомtry. В контролируемый блок включаются потенциально опасные операторыпрограммы. Все функции, прямо или косвенно вызываемые из блока, такжесчитаются ему принадлежащими;

• один или несколько обработчиков исключений — блоков catch, в которых описывается,как обрабатываются ошибки различных типов;

• блок завершения finally выполняется независимо от того, возникла ошибкав контролируемом блоке или нет. Синтаксис оператора try:

try блок [ блоки catch ] [ блок finally ]

 

Перегрузка методов.

ПерегрузкаЧасто бывает что выполняется одно и тоже действие (метод) но с разными типами аргументов или их количества.
В некторых языках программирования что бы решить данную проблему приходилось описать все методы с новыми именами, в Си Шарп для этого есть перегрузка. Рассмотри следующий пример: нам необходимо написать метод вычисляющий сумму чисел переданных в параметре, но мы можем передать как два параметра так и три и они могут быть либо все int либо все double Создаем 4 варианта метода Add со всему возможными параметрами.
При выполнении компилятор сам подберет наиболее подходящий метод

 

 





Поделиться с друзьями:


Дата добавления: 2016-07-29; Мы поможем в написании ваших работ!; просмотров: 594 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Наглость – это ругаться с преподавателем по поводу четверки, хотя перед экзаменом уверен, что не знаешь даже на два. © Неизвестно
==> читать все изречения...

2613 - | 2186 -


© 2015-2024 lektsii.org - Контакты - Последнее добавление

Ген: 0.009 с.