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

Расширенные концепции 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

 

 

 

 

 

{

class Test

 

 

return stringList[index];

{

 

 

 

 

}

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]);

 

}

 

 

 

 

 

}

 

 

 

 

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