
- •1)Принципы ооп (инкапсуляция, наследование, полиморфизм)
- •Формы полиморфизма Edit
- •2)Структура программы на с#
- •3)Встроенные типы данных. Типы-значения и ссылочные типы, упаковка и распаковка
- •4)Переменные и их инициализация, область видимости и время жизни переменных Проект Variables
- •Синтаксис объявления
- •Время жизни и область видимости переменных
- •Глобальные переменные уровня модуля.
- •Константы
- •5)Арифметические операторы, логические операторы
- •6)Приоритет операций, преобразование типов в выражениях
- •7)Оператор присваивания
- •Составные операторы присваивания
- •8)Операторы условный и выбора
- •Оператор if
- •Оператор switch
- •9)Операторы цикла
- •Цикл for
- •Цикл while
- •Цикл do. . . While
- •Цикл foreach
- •10)Операторы перехода
- •Оператор goto
- •Оператор break
- •Оператор continue
- •Оператор return
- •11)Массивы, создание и инициализация массивов, ступенчатые массивы
- •Инициализация массива
- •Неявно типизированные массивы
- •Определение массива объектов
- •Свойство Length
- •Двумерные массивы
- •Массивы трех и более измерений
- •Инициализация многомерных массивов
- •Применение свойства Length при обращении со ступенчатыми массивами
- •12)Классы и объекты, элементы класса
- •Общая форма определения класса
- •Данные-члены
- •Функции-члены
- •Переменные ссылочного типа и присваивание
- •Инициализаторы объектов
- •Методы, статические методы, параметры методов
- •Объявление методов
- •Возврат из метода и возврат значения
- •Использование параметров
- •14)Перегрузка методов
- •15)Конструкторы
- •16)Сборка мусора и деструкторы
- •Деструкторы
- •17)Перегрузки операторов
- •Перегрузка бинарных операторов
- •Перегрузка унарных операторов
- •Выполнение операций со встроенными в с# типами данных
- •Перегрузка операторов отношения и операторов true - false
- •Перегрузка операторов отношения
- •Перегрузка операторов true и false
- •Перегрузка логических операторов
- •Перегрузка укороченных логических операторов
- •Свойства
- •Автоматически реализуемые свойства
- •19)Индексаторы
- •Одномерные индексаторы
- •Многомерные индексаторы
- •20)Основы наследования
- •21)Конструкторы и наследование
- •23)Виртуальные методы
Константы
Константы C# могут появляться, как обычно, в виде литералов и именованныхконстант. Вот пример константы, заданной литералом и стоящей в правой части оператора присваивания: y = 7.7f; Значение константы "7.7f" является одновременно ее именем, оно же позволяет однозначно определить тип константы. Отметим, иногда, как в данном случае, приходится добавлять к значению специальные символы для точного указания типа. Всюду, где можно объявить переменную, можно объявить и именованную константу. Синтаксис объявления схож. В объявление добавляется модификатор const, инициализация констант обязательна и не может быть отложена. Инициализирующее выражение может быть сложным, важно, чтобы оно было вычислимым в момент его определения. Вот пример объявления констант: /// /// Константы /// public void Constants() { const int SmallSize = 38, LargeSize = 58; const int MidSize = (SmallSize + LargeSize) / 2; const double pi = 3.141593; //LargeSize = 60; //Значение константы нельзя изменить. Console.WriteLine("MidSize= {0}; pi={1}", MidSize, pi); }//Constants
5)Арифметические операторы, логические операторы
В C# определены следующие арифметические операторы.
+ Сложение
- Вычитание (также унарный минус)
* Умножение
/ Деление
% Взятие по модулю (остаток от деления)
++Инкремент
--Декремент
Арифметические операторы (+), вычитания (-), (*) и (/) работают в C# так же, как в любом другом языке программирования,
они могут применяться к любым встроенным числовым типам данных.
Логические операторы
В C# существуют следующие операторы, возвращающие логические значения (типа bool): true (истина) и false (ложь):
операторы сравнения
==Равно
!=Не равно
>Больше чем
<Меньше чем
>=Больше или равно
<=Меньше или равно
логические операторы
& AND (И)
| OR (ИЛИ)
^ XOR (исключающее ИЛИ)
&& Short-circuit AND (быстрый оператор И)
|| Short-circuit OR (быстрый оператор ИЛИ)
! NOT (НЕ)
Укороченные логические операторы
В С# предусмотрены также специальные, укороченные, варианты логических операторов И и ИЛИ, предназначенные для получения более эффективного кода. Поясним это на следующих примерах логических операций. Если первый операнд логической операции И имеет ложное значение (false), то ее результат будет иметь ложное значение независимо от значения второго операнда. Если же первый операнд логической операции ИЛИ имеет истинное значение (true), то ее результат будет иметь истинное значение независимо от значения второго операнда. Благодаря тому что значение второго операнда в этих операциях вычислять не нужно, экономится время и повышается эффективность кода.
Укороченная логическая операция И выполняется с помощью оператора &&, а укороченная логическая операция ИЛИ — с помощью оператора ||. Этим укороченным логическим операторам соответствуют обычные логические операторы & и |. Единственное отличие укороченного логического оператора от обычного заключается в том, что второй его операнд вычисляется только по мере необходимости.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
short d = 12, f = 0, i = 0;
bool b = true;
// В данном случае используется укороченный оператор
// и операции сравнения выполнится в нормальном потоке
if (f != 0 && (d % f) == 0)
Console.WriteLine("{0} делится нацело на {1}",d,f);
// В этом случае так же используется укороченный оператор
// но при этом возникнет исключительная ситуация
// т.к. первый оператор сравнения содержит деление на 0
if ((d % f) == 0 && f != 0)
Console.WriteLine("{0} делится нацело на {1}", d, f);
// При использовании целостного оператора в любом
// случае возникнет исключительная ситуация
if (f != 0 & (d % f) == 0)
Console.WriteLine("{0} делится нацело на {1}", d, f);
//*** Практический пример использования обычных операторов ***//
// При использовании обычного оператора, в данной конструкции
// i будет инкреминироваться
if (b & (++i < 10))
Console.WriteLine("i равно {0}",i); // i = 1
i = 0;
// При использовании укороченного оператора
// значение i останется прежним
if (b && (++i < 10))
Console.WriteLine("i равно {0}", i); // i = 0
Console.ReadLine();
}
}
}
В C# операторы == и!= могут применяться ко всем объектам.
Операторы сравнения <, >, <=, >= применимы только к перечисляемым типам данных, которые упорядочены в своей структуре. Следовательно, все операторы сравнения могут применяться ко всем числовым типам данных.
Однако значения типа bool могут сравниваться только на предмет равенства или неравенства, поскольку значения true и false не упорядочены.
Например, выражение true > false в языке C# не имеет смысла.