Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

БД / Лекция1_Введение

.pdf
Скачиваний:
28
Добавлен:
20.04.2015
Размер:
596.38 Кб
Скачать

Раздел№1

Проектирование и разработка типов на языке C# в соответствии со стандартами принятыми в спецификации CTS (Система общих типов).

Лекция №1

Введение. Общие сведения о системе общих типов (CTS). Типы значений и ссылочные типы. Встроенные типы. Определение типа: атрибуты; модификаторы; имя; базовый тип данного типа; интерфейсы, реализованные этим типом; члены типа. Модификаторы для членов типа. Ключевые слова, которые влияют на определение типа или члена типа.

Введение.

Литература

1. Спецификация языка C#. Доступна на веб-узле MSDN Online в Центре разработчиков Visual C# http://www.microsoft.com/en-us/download/details.aspx?id=7029 или в Visual Studio в каталоге установки

\VC#\Specifications\...

2.Библиотека MSDN http://msdn.microsoft.com/ru-ru/library/default.aspx

3.Джеффри Рихтер CLR via C#. Программирование на платформе Microsoft .NET Framework 2.0 на языке C# Питер, Русская Редакция 2007

Средства разработки и языки программирования

C# – это простой, современный, типобезопасный, объектно-ориентированный язык программирования.

Язык C# стандартизирован ECMA на соответствие стандарту ECMA-334, а также ISO/IEC на соответствие

стандарту ISO/IEC 23270.

Необходимо установить:

1.распространяемое бесплатно средство разработки:

Microsoft Visual C# 2008 Express Edition (Microsoft Visual C# 2008, экспресс-выпуск);

Экспресс-выпуск доступен для скачивания по ссылке: http://www.microsoft.com/visualstudio/ru-ru/products/2008-editions/express

2.и распространяемый бесплатно пакет:

.NET Framework, который устанавливается автоматически при установке Microsoft Visual C# 2008 Express

Edition.

Cреда разработки Microsoft Visual Studio включает: средства управления проектами, редактор исходного текста, компиляторы, компоновщики, документацию, отладчики, конструкторы пользовательского интерфейса …

Документация по Использованию интегрированной среды разработки Visual C# доступна по ссылке: http://msdn.microsoft.com/ru-ru/library/h8w79z10(v=vs.90),

Построение и отладка Visual C# по ссылке http://msdn.microsoft.com/ru-ru/library/ms173083(v=vs.90)

.NET Framework — платформа разработки. Основными компонентами .NET Framework являются:

общеязыковая среда исполнения (common language runtime, CLR) предоставляет объектно-

ориентированную модель программирования;

библиотека классов (Framework Class Library, FCL) предоставляет объектно-

ориентированный интерфейс, используемый всеми моделями приложений;

Пример кода на языке C#.

Примеры по Созданию консольных приложений (Visual C#) доступны по ссылке

http://msdn.microsoft.com/ru-ru/library/452fz12a(v=vs.90)

Пример. Создание консольного приложения Visual C# Console Application.

//директива using с перечислением пространств имен библиотеки классов платформы .NET Framework

//определяет префикс System

using System;

// объявление собственного пространства имен namespace ConsoleApplication2

{

//Класс Program объявлен с единственным членом - статическим методом Main class Program

{

//Метод Main - точка входа в программу static void Main(string[] args)

{

string text;

Console.Write("Введите текст\n"); text = Console.ReadLine();

//статический метод WriteLine–класса Console пространства имен System Console.WriteLine(text);

}

}

}

Результат выполнения программы:

Метод Main объявляется внутри класса или структуры.

Файлы исходного кода С# имеют расширение .cs. C# программы состоят из одного или более исходных файлов. При компиляции C# программ получаются сборки. Сборки имеют расширение .exe или .dll,

они реализованы как приложения или как библиотеки.

Общие сведения о системе общих типов (CTS).

Система общих типов определяет способ объявления, использования и управления типами во время выполнения.

Типы и переменные

There are two kinds of types in C#: value types and reference types.

Система общих типов поддерживает две общие категории типов: типы значений и ссылочные типы.

Переменные типа значений содержат данные.

Переменные ссылочного типа хранят ссылки на соответствующие данные (объекты).

К типам значений в C# относятся простые типы, перечисляемые типы, типы структур и обнуляемые типы. К ссылочным типам в C# относятся типы классов, типы интерфейсов, типы массивов и типы делегатов.

Система общих типов CTS в платформе .NET Framework поддерживает следующие категории

типов: (из Спецификации языка C# версии 3.0)

Category

 

Description

 

 

 

Value

Simple types

Signed integral: sbyte, short, int, long

types

 

 

 

Unsigned integral: byte, ushort, uint, ulong

 

 

 

 

 

 

 

Unicode characters: char

 

 

 

 

 

IEEE floating point: float, double

 

 

 

 

 

High-precision decimal: decimal

 

 

 

 

 

Boolean: bool

 

 

 

 

Enum types

User-defined types of the form enum E {...}

 

 

 

 

Struct types

User-defined types of the form struct S {...}

 

 

 

 

Nullable types

Extensions of all other value types with a null value

 

 

 

Reference

Class types

Ultimate base class of all other types: object

types

 

 

 

Unicode strings: string

 

 

 

 

 

 

 

User-defined types of the form class C {...}

 

 

 

 

Interface types

User-defined types of the form interface I {...}

 

 

 

 

Array types

Singleand multi-dimensional, for example, int[] and

 

 

int[,]

 

 

 

 

Delegate types

User-defined types of the form e.g. delegate int D(...)

 

 

 

Для создания нового типа в программах на языке C# его необходимо определить. Можно определить пять пользовательских типов: классы, структуры, интерфейсы, перечисления и делегаты.

Классы и объекты

Класс — это структура данных, объединяющая состояние (поля) и действия (методы и другие функции-

члены). Экземпляры класса создаются с помощью оператора new. Класс может содержать

статические члены или члены экземпляра. Статические члены принадлежат классам. Члены экземпляра принадлежат объектам (экземплярам класса).

В типе можно определить следующие члены: (Джеффри Рихтер CLR via C#. Программирование на

платформе Microsoft .NET Framework 2.0 на языке C# Питер, Русская Редакция 2007)

Константа. Идентификатор, определяющий постоянную величину. Константы связаны с типом, а не с экземпляром.

Поле. Представляет неизменяемое или изменяемое значение. Поле может быть статическим – тогда оно является частью типа и экземплярным - тогда оно является частью объекта.

Метод. Представляет собой функцию, выполняющую операции, которые изменяют или запрашивают состояние типа (статический метод) или объекта (экземплярный метод).

Конструктор экземпляра– метод, используемый для инициализации полей экземпляра при его создании.

Конструктор типа – метод, используемый для инициализации статических полей типа.

Свойство. Для того чтобы можно было изменить значение (получить значение) закрытой переменной,

необходимо использовать свойства или функции доступа (accessors). Для вызывающей стороны этот член выглядит как поле, но в реализации типа он выглядит как метод.

Перегруженный оператор.

Оператор преобразования.

Событие.

Тип. Позволяет определять другие вложенные в него типы.

Встроенные числовые типы (из Спецификации языка C# версии 3.0).

Category

Bits

Type

Range/Precision

 

 

 

 

Signed

8

sbyte

–128...127

integral

 

 

 

 

16

short

–32,768...32,767

 

 

 

 

 

 

32

int

–2,147,483,648...2,147,483,647

 

 

 

 

 

64

long

–9,223,372,036,854,775,808...9,223,372,036,854,775,807

 

 

 

 

Unsigned

8

byte

0...255

integral

 

 

 

 

16

ushort

0...65,535

 

 

 

 

 

 

32

uint

0...4,294,967,295

 

 

 

 

 

64

ulong

0...18,446,744,073,709,551,615

 

 

 

 

 

Floating

32

float

1.5

× 10−45 to 3.4 × 1038, 7-digit precision

point

 

 

 

 

64

double

5.0

× 10−324 to 1.7 × 10308, 15-digit precision

 

 

 

 

 

Decimal

128

decimal

1.0

× 10−28 to 7.9 × 1028, 28-digit precision

 

 

 

 

 

Тип bool используется для представления логических значений true или false.

Тип char используется для объявления символа Юникода (кода UTF-16).

Для создания переменных в программах C# используются оператор объявления. В операторе объявления необходимо указать тип и имя создаваемой переменной. Каждая переменная по значению должна быть инициализирована перед использованием. Простые типы можно инициализировать с помощью литералов.

Пример. Объявление и инициализация целых чисел со знаком. Форматирование числовых результатов при

выводе данных на консоль.

using System;

namespace ConsoleApplication2

{

class Program

{

static void Main(string[] args)

{

sbyte sByte1 = 127; short x = 32767; int i = 123;

long long1 = 4294967296;

Console.WriteLine("Переменная sbyte{0,4:d} Переменная short{1,6:d} " +

" Переменная int{2,4:d} Переменная long{3,11:d}", sByte1, x, i,long1);

}

}

}

Для форматирования числовых результатов при выводе данных на консоль можно использовать составное форматирование. Общая форма записи спецификатора формата в составном форматировании имеет следующий вид: {номер_ аргумента[, ширина][: формат]}. Парные фигурные скобки ("{" и "}") здесь обязательны.

номер_ аргумента – описатель параметра, число, определяющее соответствующий объект из списка;

индексация элементов ведется от нуля. Например, если имеется три объекта, то можно отформатировать сначала второй, а затем первый и третий объекты, задав следующую строку составного форматирования: "{1} {0} {2}".

Необязательный компонент ширина (alignment) — это целое число со знаком, которое служит для указания желательной ширины поля форматирования.

Необязательный компонент формат — это строка формата, соответствующая типу форматируемого объекта.

Пример. Объявление и инициализация чисел с плавающей запятой и десятичной переменной. Форматирование числовых результатов.

using System;

namespace ConsoleApplication2

{

class Program

{

static void Main(string[] args)

{

float x = 3.5555F; double y = 3.5555; decimal myMoney = 300.5m;

Console.WriteLine("Переменная float {0:f} Переменная double {1:f}" + " Переменная decimal {2:c}", x, y, myMoney);

}

}

}

using System;

namespace ConsoleApplication2

{

class Program

{

static void Main(string[] args)

{

float x = 3.5555F; double y = 3.5555; decimal myMoney = 300.5m;

Console.WriteLine("Переменная float {0:##.#} Переменная double {1:#.###}" + "Переменная decimal {2:c}", x, y, myMoney);

}

}

}

Литералы

Литерал — это представление значения в исходном коде.

Символьные литералы

char[] chars = new char[4];

 

chars[0] = 'X';

// Character

literal

chars[1] = '\x0058';

// Hexadecimal

chars[2]

=

(char)88;

//

Cast from

integral type

chars[3]

=

'\u0058';

//

Unicode

 

логические литералы

true false

Литерал_null

null

Целочисленные литералы

Цифры от 0 до 9. Чтобы указать, что литерал представляет собой число без знака, он снабжается

суффиксом u или U, например:

uint i = 12u;

Console.WriteLine("{0:d}", i);

Суффиксы l или L применяются для создания литералов типа long и ulong:

long i = 1222L;

Console.WriteLine("{0:d}", i);

шестнадцатеричные числа

long i = 0xFFFF;

Console.WriteLine("{0:x}", i);

Литералы с плавающей точкой

float i = 10.0f;

Console.WriteLine("{0:f}", i);

double i = -3.7E-10D;

Console.WriteLine("{0:e}", i);

Строковые литералы

string i = "eeeeee\nyyyyyyyyy";

Console.WriteLine(i);

В языке С# строковый литерал может иметь префикс @. Он задает так называемый

буквальный литерал

string i =@"c:\";

Console.WriteLine(i);

Подробнее в спецификации языка C#.

Встроенные числовые типы являются структурами, и к их свойствам и методам и другим членам можно получить

доступ.

Соседние файлы в папке БД