Свойства. Свойства в С# состоят из объявления поля и методов-аксессоров для работы с этим полем

Свойства в С# состоят из объявления поля и методов-аксессоров для работы с этим полем.

Эти методы-аксессоры называются получатель (get) и установщик (set).

Например, простейшее свойство y, работающее с полем m, можно представить следующим образом:

private int m=35;

public int y

{

get

{

return m;

}

set

{

m=value;

}

}

Свойство, определяется, так же как и поле, но после имени свойства идет блок кода, включающий в себя два метода get и set. Код этих методов может быть сколь угодно сложным, но в нашем случае это всего лишь один оператор. Аксессор get всегда возвращает значение того типа, который указан в определении свойства. Аксессор set всегда принимает в качестве параметра переменную value, которая передается ему неявно. Один из аксессоров может быть опущен, в этом случае мы получаем поле только для чтения или только для записи.

Обращение к свойству осуществляется точно так же как и к полю.

Пример 2.

using System;

namespace ConsoleApplication2

{

class CStatic

{

private int m=35;

public int y

{

get

{

return m;

}

set

{

m=value;

}

}

}

class Program

{

static void Main(string[] args)

{

CStatic p=new CStatic();//создается экземпляр класса

Console.WriteLine("{0}",p.y);

p.y=75;

int z = p.y;

Console.WriteLine("{0}",z);

}

}

}

Введите текст программы из примера 2, скомпилируйте и проанализируйте работу приложения.

Индексаторы

Индексаторы позволяют приложению обращаться с объектом класса так, как будто он является массивом. Индексатор во многом напоминает свойство, но в отличие от свойства он принимает в качестве параметра индекс массива. Так как объект класса используется как массив, то в качестве имени класса используется ключевое слово this.

Пример 3.

using System;

namespace ConsoleApplication3

{

class Rmas

{

protected float[] msf=new float[10];

public float this[int j]

{

get

{

return msf[j];

}

set

{

msf[j]=value;

}

}

}

class Program

{

static void Main(string[] args)

{

Rmas obj = new Rmas();

for(int i=0; i<10;i++)

{

obj[i] = (float)1.5*i;

}

for(int i=0; i<10;i++)

{

Console.WriteLine("{0}",obj[i]);

}

}

}

}

Введите текст программы из примера 3, скомпилируйте и проанализируйте работу приложения.


2. Практическая часть


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: