Общая форма свойства - C#
Формулировка задачи:
Здравствуйте подскажите где и когда применяется общая форма свойства?
Или вопрос иначе что делает общая форма свойства?
Общая форма бывает только у свойств или у всех типов?
public int current
{
get {return a; }
}
object test1.current
{
get { return current; }
}Решение задачи: «Общая форма свойства»
textual
Листинг программы
public class Program
{
public static void Main(string[] args)
{
MyClass c1 = new MyClass();
//св-во от обобщенного интерфейса
c1.Item = 10;
//выводим сво-ва не обобщенного интерфейса,который вернет св-ва от обобщенного , т.е. значение 10
Console.WriteLine(((ICheck)c1).Item);
}
}
interface ICheck //не обобщенная версия
{
object Item {get;}
}
interface ICheck<T> : ICheck // обобщенная версия
{
T Item {get;}
}
class MyClass: ICheck<int>
{
int _Item;
public int Item
{
get{ return _Item;}
set{ _Item = value;}
}
//т.к. интерфейс ICheck<T> наследуется от обычной(не обобщенный) версии интерфейса ICheck,то класс,который реализует ICheck<T>
//должен реализовать интерфейс ICheck(не обобщенный)
//А явная реализация,может быть по ряду причин,одна из которых
//показывает,что св-ва(внутри интерфейсов) имеют такие же названия,и для того,чтобы избежать путаницы,мы реализуем явно не обобщенный интерфейс(который вернет св-во Item).
object ICheck.Item
{
get { return Item; }
}
}