- •Обзор
- •Цели
- •Сборки (Assemblies)
- •Структура сборки
- •Создание сборок (Assemblies)
- •Создание выполняемого файла
- •Ссылка на сборку
- •Пространства имен и сборки
- •Типы сборок – закрытая(private)
- •Типы сборок – разделяемая(shared)
- •Папка глобального кэша сборок
- •Сборки. Модификаторы доступа Internal
- •Контроль версий (Versioning)
- •Отражения (Reflection) 1
- •Отражения - пример
- •Отражения
- •Отражения. Свойства и методы объекта Type
- •Отражения. Метод GetMembers
- •Наборы (Collections)
- •Наборы - пример
- •Исключения (Exceptions)
- •Блоки try и catch
- •Больше о блоках catch
- •Общий (General) catch блок
- •Генерация исключений с помощью оператора throw
- •Использование блока Finally
- •Резюме
Папка глобального кэша сборок
Сборки. Модификаторы доступа Internal
|
|
Внешние методы не |
Внешние методы |
|
|
|
доступны извне |
|
доступны внутри |
|
|
|
сборки |
|
сборки |
|
|
|
|
|
Контроль версий (Versioning)
Все сборки должны иметь номер версии
Отражения (Reflection) 1
Используется для получения информации об объекте, его классах, методах и переменных во время выполнения программы.
Класс Type является базовым для всех отражений информации для любого объекта
Мы можем получить информацию об объекте следующими методами:
typeof()
GetType()
Отражения - пример
namespace Reflection_Example
{
using System;
public class RefExample
{
public int addition(int first, int second)
{
return first+second;
} |
|
public static int Main() |
|
{ |
//Class Reference |
Type refType= typeof(RefExample); |
|
RefExample objRef=new RefExample(); |
// Object Reference |
Type objType = objRef.GetType(); |
Console.WriteLine("The type of objRef is : {0} ", objType); Console.WriteLine("The type of RefExample is : {0}", refType);
Console.WriteLine("The Namespace of RefExample is : {0} ", refType.Namespace); return 0;
}
}
}
Отражения
Отражения. Свойства и методы объекта Type
Имя |
Описание |
GetMethods() |
Возвращает массив объектов MethodInfo, который |
|
описывает методы данного класса |
GetConstructors() |
Возвращает все конструкторы для объекта |
GetInterfaces() |
Возвращает все интерфейсы, реализованные для |
|
данного типа |
GetMembers() |
Возвращает все члены данного типа |
InvokeMember() |
Вызывает член данного типа |
IsAbstract |
Возвращает значение “Истина” для абстрактных |
|
типов |
IsEnum |
Возвращает значение “Истина” для перечислений |
Отражения. Метод GetMembers
namespace Reflection_Example
{using System;
using System.Reflection; public class RefExample
{
private int intSum;
public void addition(int intA, int intB) { intSum= intA+intB; }
public static int Main()
{
Type refType= typeof(RefExample);
MemberInfo[] memInfoArray = refType.GetMembers(); foreach (MemberInfo memInfo in memInfoArray)
{
Console.WriteLine(memInfo);
}
return 0;
} }}
Наборы (Collections)
Наборы (Collections) являются типами данных общего назначения и позволяют нам выполнять над ними групповые действия
Содержит класс Hashtable, который позволяет хранить данные в виде набора пар “ключ -значение” и упорядочивается в зависимости от от хэш-кода ключа.
Наборы - пример
using System.Collections; class Test
{
static void Main()
{
Hashtable listOfStudents = new Hashtable(); listOfStudents.Add("Sam", "8605130"); listOfStudents.Add("Smith", "8604292"); listOfStudents.Add("Tom", "8604292"); System.Console.WriteLine("The number of students in the school
are {0} ", listOfStudents.Count);
}
}