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

Расширенные концепции C# - II

Обзор

Глава 7 – Расширенные концепции C# - I

Сборка состоит из:

Набора типов и ресурсов, формирующих логический функциональный блок.

Декларация (manifest) содержит информацию, описывающую данную сборку.

Мы можем разместить классы из одного пространства имен в разные сборки, а также классы из различных пространств имен в одну сборку.

Сборки бывают двух типов: Закрытые(Private) и Разделяемые(Shared)

Номер версии сборки обозначается четырехзначным числом в следующем формате: <Старший номер версии> . < Младший номер версии

>.<Редакция> . <Выпуск>

Пространство имен System.Reflection содержит около 40 классов и интерфейсов, которые могут быть использованы для получения информации об объекте.

Наборы (Collections) – это типы данных, которые обеспечивают особый способ хранения и групповой обработки данных.

Исключения (Exceptions) генерируются во время выполнения программы, при возникновении ошибки.

Блоки try и catch помогают обрабатывать сгенерированные исключения.

Использование оператора Throw, позволяет программно сгенерировать исключения.

Инструкции, содержащие в блоке Finally выполняются независимо от того было исключение или нет.

Цели

Объяснить что такое Свойства (Properties)

Применение Индексаторов (Indexers)

Применение делегатов (Delegates)

Определять и генерировать События (Events)

Поля в классах - пример

Свойства(Properties) - средство защиты полей в классах

using System; class Student

{ public string sName; } public string sId;

class Test

{ public static void Main()

{ Student studOne = new Student(); Console.WriteLine("Enter Student Name"); studOne.sName = Console.ReadLine(); Console.WriteLine("\nEnter Student Id"); studOne.sId = Console.ReadLine();

Console.WriteLine("Student name is {0} and Student Id is {1}", studOne.sName, studOne.sId);

} }

Свойства (Properties). Методы Get и Set

Employee emp emp.Set(“Design”)

String Department = emp.Get()

..

Каждый раз когда нам необходимо получить доступ к полю, необходимо использовать методы set и get

Свойства (Properties) in C#

using System;

 

 

 

 

 

 

 

 

 

 

 

 

public class Student

 

 

 

 

 

 

{

 

 

 

 

 

 

public string sName;

//Field

 

 

 

private string internal_sId;//Field

 

 

 

public string sId

 

//Property

 

 

 

{

 

 

 

 

 

 

 

 

 

 

 

 

get

 

 

 

 

 

 

 

 

class Test

 

 

 

{

 

 

 

 

 

return internal_sId;

 

{

 

 

 

}

 

 

static

 

void Main()

 

 

 

{

 

 

 

set

 

 

Student one = new Student();

{

 

 

one.sName = "Sam";

internal_sId = value;

 

one.sId = "St423";

}

 

 

Console.WriteLine("The Name of the Student

}

 

 

is {0} and his Id is {1}", one.sName, one.sId);

}

 

 

}

 

 

 

 

 

 

}

 

 

 

Свойства - объяснение

Эта строка кода неявно вызывает метод set

Эта строка неявно вызывает метод get

Типы свойств

Свойство Read / Write

Свойство Read – только для чтения

Свойство Write – только для записи

Больше о свойствах

Свойства это логические поля

Свойства являются расширениями полей

В отличие от полей, свойствам непосредственно не соответствуют какие-либо области памяти

В отличие от методов свойства не используют скобки ()

Индексаторы (Indexers)

Индексаторы являются простыми компонентами языка C#

Мы можем создать индексатор для массива и обращаться к элементам массива напрямую, указывая индекс для объекта класса

Позволяет проиндексировать объект тем же способом, что и массив

Возможно обеспечить доступ к членам класса схожим с доступом к элементам массива способом

Индексаторы - пример

 

 

 

 

 

 

class IndexerExample

 

 

 

 

 

{ public string[] stringList=new string[10];

 

 

 

 

public string this[int index]

 

 

 

 

 

{ get

 

 

 

 

 

{ return stringList[index];

{class Test

 

 

}

 

static void Main()

set

 

{ IndexerExample indexTest = new

{

IndexerExample();

stringList[index] = value.ToString();

 

 

indexTest.stringList[1]="Sam";

}

 

 

indexTest[2]="Tom";

}

 

 

System.Console.WriteLine("indexTest[1] is

}

{0}\nindexTest[2] is {1}", indexTest[1],

 

 

 

indexTest[2]);

 

}

}

 

 

Соседние файлы в папке Инструментальные средства