Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Shpory_oop_sdelan.docx
Скачиваний:
4
Добавлен:
16.04.2019
Размер:
929.66 Кб
Скачать

10.Структура программы на c#

using System:

namespace ConsoleApplicationl

{class Classl

{

static void MainO

{

Console.WriteLine( "Ур-ра! Зар-работало! (с) Кот Матроскин" ):

}}}

Директива using System разрешает использовать имена стандартных классов из пространства имен System непосредственно (без указания имени пространства).

Ключевое слово namespace создает для проекта собственное пространство имен, названное по умолчанию ConsoleAppl icationl. Это сделано для того, чтобы можно было давать программным объектам имена, не заботясь о том, что они могут совпасть с именами в других пространствах имен. Описание класса начинается с ключевого слова class, за которым следуют его имя и далее в фигурных скобках — список элементов класса (его данных и функций, называемых также методами).В данном случае внутри класса только один лемент — метод Main. Каждое приложение должно содержать метод Main — с него начинается выполнение программы.

Все методы описываются по единым правилам.

Упрощенный синтаксис метода:

[ спецификаторы ] тип имя_нетода ( [ параметры ] )

{

тело метода: действия, выполняемые методом

}

11.Система типов языка с#

Размерные и ссылочные типы

(Перед разработчиками CTS стояла задача создания системы типов, где любая сущность была бы объектом, но система типов при этом работала эффективно. Они решили эту задачу, разделив типы CTS на две категории: размерные (value types) и ссылочные (reference types))

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

Как в любом языке программирования, в С# существует множество встроенных типов данных. С помощью этих типов можно представлять целочисленные числа и числа с плавающей запятой, строки символов и логические значения. Все типы в С# разделяются на две основные разновидности: структурные типы (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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]