- •Обзор
- •Цели
- •Поля в классах - пример
- •Свойства (Properties). Методы Get и Set
- •Свойства - объяснение
- •Типы свойств
- •Больше о свойствах
- •Индексаторы (Indexers)
- •Индексаторы - пример
- •Правила объявления индексаторов
- •Индексаторы и массивы
- •Индексаторы и массивы 2
- •Индексаторы и массивы 3
- •Индексаторы и массивы 4
- •Множественные
- •Делегаты (Delegates)
- •Определение
- •Присвоение (Instantiating) Делегатов
- •Использование делегатов
- •События
- •Определение событий
- •Подписка (Subscribing) на событие
- •Оповещение о событии
- •Резюме
Правила объявления индексаторов
Должен быть задан по крайней мере один параметр индексатора
Параметрам должны быть присвоены значения
Индексаторы и массивы
Индексаторы не ссылаются на области памяти
Индексаторы могут иметь нецелочисленные индексы
Индексаторы могут быть перегружены
Индексаторы и массивы 2
Индексаторы и массивы 3
|
|
|
|
|
|
using System.Collections; |
|
|
|
|
|
class StrIndex |
|
|
|
|
|
|
|
|
|
||
{ |
|
|
|
|
|
public Hashtable studentList = new |
|
|
|
||
Hashtable(); |
|
|
|
||
public int this[string name] |
|
|
|
||
{ |
|
|
|
|
|
get |
|
|
|
||
class Test |
|
|
|||
{ |
|
|
|
||
|
{ |
|
|
||
return (int) studentList[name]; |
|
|
|||
} |
|
static void Main() |
|||
|
{ |
|
|
||
set |
|
|
|||
StrIndex objIndex = new StrIndex(); |
|||||
{ |
|
||||
|
objIndex["Sam"] = 232676; |
||||
studentList[name] = value; |
|||||
objIndex["Tom"] = 455464; |
|||||
} |
|
||||
|
System.Console.WriteLine("Phone |
||||
} |
|
||||
|
number of Sam is {0} and Phone number of |
||||
} |
|
||||
|
Tom is {1}", |
|
|
||
|
|
|
|
||
|
|
objIndex["Sam"],objIndex["Tom"]); |
|||
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
Индексаторы и массивы 4
using System.Collections; class IndexerExample
{
public string[] stringList=new string[10]; public string this[int index]
{get
{ return stringList[index]; }
set
{ stringList[index] = value.ToString();class Test
} } { public Hashtable studentList =
new Hashtable();
public int this[string number]
{
get
{return (int) studentList[number];} set
{ studentList[number] = value;
}
}
}
Множественные
индексаторы
Мы можем задать для индексатора несколько индексных параметров
К индексаторам с несколькими индексными параметрами можно получить доступ как многомерному массиву
Делегаты (Delegates)
Делегаты содержат ссылку на метод
Позволяет решать какой метод необходимо вызывать во время выполнения программы
Для использования:
Определение делегата
Присвоение(Instantiating) значения делегату
Использование делегата
Определение
делегатов
public delegate void DelegateName();
Присвоение (Instantiating) Делегатов
class TestDelegates
{
public delegate int CallFun(int a, int b); class MathsOperations
{
public int MulFun(int a, int b) |
|
|
{ |
|
|
return a*b; |
|
|
} |
class Test |
|
public int DivFun(int a, int b) |
{ |
|
{ |
static void Main() |
|
return a/b; |
{ |
|
} |
CallFun DelegateObj; |
|
} |
MathsOperations math = new MathsOperations( |
|
|
|
DelegateObj = new CallFun(math.MulFun); |
|
} |
|
|
|
|
|
} |
|
|
} |
|
Использование делегатов
class TestDelegates
{
public delegate int CallFun(int a,
int b);
class MathsOperations |
class Test |
|
{ |
{ |
|
public int MulFun(int a, int |
|
static void Main() |
{ |
{ |
|
return a*b; |
|
CallFun DelegateObj; |
} |
|
MathsOperations math = new |
|
MathsOperations(); |
|
public int DivFun(int a, int |
|
DelegateObj = new |
{ |
|
|
return a/b; |
CallFun(math.MulFun); |
|
} |
|
int t=DelegateObj(5, 3); |
} |
|
System.Console.WriteLine("The |
|
|
is : {0}",t); |
|
Result |
|
|
} |
|
|
} |
|
|
} |