- •1.Технология .Net Framework
- •6. В чем отличие платформы . Net от стандартного подхода к разработке программ.
- •7. Алфавит и лексемы языка программирования с#.
- •8. Типы данных в .Net Framework.
- •9. Переменные типа ссылки. Пример использования.
- •10. Инициализация переменных, констант. Специальные символы при инициализации строк.
- •11. Область видимости переменных.
- •12. Именование переменных.
- •14. Явное и неявное преобразование типов данных.
- •15. Ввод с клавиатуры. Преобразование строк в числа.
- •16. Перечислимые типы.
- •17. Структуры.
- •18.Структура if.
- •19. Структура switch.
- •20. Цикл while.
- •21. Оператор do.
- •22. Оператор for.
- •23. Оператор foreach.
- •24.Оператор goto.
- •25. Операторы break и continue.
- •26. Понятие исключения.
- •27. Перехват исключений.
- •28. Бросание исключений.
- •29. Определение массива. Объявление, инициализация.
- •30. Доступ к элементам массива.
- •31.Основные свойства и методы массивов.
- •32.Коллекции. Их виды.
- •33. Методы в с#
- •34. Вызов метода
- •35. Возврат из метода. Возврат значений из метода.
- •36. Параметры методов. Передача параметров по значению. Передача параметров по ссылке.
- •37. Понятие ооп. Классы и объекты
- •38. Основные три принципа ооп.
- •39. Понятие конструктора. Параметры конструктора
- •40. Понятие деструктора.
- •41. Управление памятью. Алгоритм работы Garbage Collector.
- •42 Управление доступом к элементам сущности.
- •43 Интерфейсы. Правила использования интерфейсов.
- •44 Абстрактные классы
- •45. Класс Random. Основные методы класса System.Random.
- •46 Математические функции – класс Math. Основные методы класса System.Math.
- •47 Пространства имен. Использование пространства имен.
- •48 Операции над строками. Основные элементы класса System.String.
- •49 Работа с символами в с#. Основные методы класса System.Char.
- •50. Классы .Net для работы с файлами. Основные классы пространства имен System.Io.
- •51. Структыры
- •52. Перечисления
- •53. Основные понятия ооп.
- •54. Конструкторы. Параметр this. Ключевое слово this.
- •55. Интерфейсы. Правила использования.
- •56. Семейства и индексаторы. Интерфейсы для работы с семействами.
- •57.Делегаты. Операции с делегатами. Использование делегатов.
- •58. Сборки и библиотеки. Атрибуты, директивы сборки.
8. Типы данных в .Net Framework.
В языке программирования C# типы данных подразделяются на три категории:
Значение Ссылка Указатель
К первой категории относятся участки памяти, распределенные под переменные и предназначенные для хранения значений этих переменных. Например, следующий код
int x = 5; объявляет переменную - целую со знаком, размером 32 бита, с именем x и начальным значением, равным 5.
Переменные-ссылки содержат адреса объектов, размещенных в динамической памяти. Кроме того, переменные-ссылки могут иметь специальное значение null, которое подразумевает ссылку на несуществующий объект, в пустоту.
Переменные-указатели. Переменные-указатели допускают выполнение арифметических операций над ними, ссылки -- нет.
Предопределенные типы:
bool 1 true или false.
sbyte 1 Целое со знаком.
byte 1 Целое без знака.
short 2 Кортокое целое со знаком.
ushort 2 Короткое целое без знака.
int 4 Целое со знаком.
uint 4 Целое без знака.
long 8 Длинное целое со знаком.
ulong 8 Длинное целое без знака.
char 2 Символ юникода (unicode character).
Float 4 Число с плавающей точкой одинарной
double8 Число с плавающей точкой двойной точности
decimal16 Числовой тип данных, который обычно используется в финансовых
object 8+ Элементарный базовый тип как для переменных-значений, так и для переменных-ссылок
string 20+ Непрерывная последовательность символов в юникоде (unicode characters).
9. Переменные типа ссылки. Пример использования.
Обычно при передаче параметров в функцию, передается копия данного объекта, но бывает ситуация когда необходимо передать не копию а сам объект.
Таким образом внутри метода меняется не копия объекта а сам объект.
Передача параметра по ссылке происходит черех ключевое слово ref
Рассмотрим пример
namespace ConsoleApplication3
{ class Program
{ static void Main(string[] args)
{ int a = 5;
Console.WriteLine(Inc(a));
Console.WriteLine(a);
Console.WriteLine(Inc2(ref a));
Console.WriteLine(a);
}
static private int Inc(int a)
{ return a+=1; }
static private int Inc2(ref int a)
{ return a+=1; }
} }
В вызове первой функции происходит передача копии объекта a поэтому после вызова a остается равной 5, а вот во втором случае передается по ссылке
и после вызова а=6
Переменная ссылочного типа не содержит непосредственные данные; она содержит ссылку на эти данные. Если параметр ссылочного типа передается по значению, можно изменить данные, на которые указывает ссылка, например, значение члена класса. Однако нельзя изменить значение самой ссылки; то есть нельзя использовать одну ссылку для выделения памяти для нового класса и его создания вне заданного блока. Для этого передайте параметр с помощью ключевого слова ref или out.
10. Инициализация переменных, констант. Специальные символы при инициализации строк.
Переменная — это расположение в памяти объекта определенного типа. В приведенных выше примерах х и у — переменные. Переменные могут иметь значения, которыми они проинициализированы, или эти значения могут быть изменены программно. Константа — это переменная, значение которой не может быть изменено.
В C# (Csharp) используется два метода обеспечения гарантии инициализации переменных:
-- переменные, которые являются полями класса или структуры, если не инициализированы явно, то по умолчанию обнуляются в момент создания;
-- переменные, локальные по отношению к методу, должны быть явно инициализированы, до появления любого оператора в котором используется значение переменной.
Константы должны инициализировать сразу после объявления. Примеры.
C#
class Calendar1
{ public const int months = 12; }
В этом примере константа months всегда имеет значение 12, и ее значение не может быть изменено даже самим классом.
Несколько констант одного типа можно объявить одновременно
class Calendar2
{ const int months = 12, weeks = 52, days = 365; }
Используемое для инициализации константы выражение может ссылаться на другую константу, если при этом не создается циклическая ссылка.
class Calendar3
{ const int months = 12;
const int weeks = 52;
const int days = 365;
const double daysPerWeek = (double) days / (double) weeks;
const double daysPerMonth = (double) days / (double) months;}
Константы могут быть отмечены модификаторами public, private, protected, internal или protectedinternal. Эти модификаторы доступа определяют порядок доступа к константе для пользователей класса.
Доступ к константам осуществляется так, как если бы они были статическими полями, поскольку значение константы одинаково для всех экземпляров типа. Для их объявления не нужно использовать ключевое слово static. В выражениях, которые не входят в класс, в котором определена константа, для доступа к ней необходимо использовать имя класса, точку и имя этой константы. Примеры.
int birthstones = Calendar.months;