Почему в C# нет делегатов для свойств?
return delegate { return MyProperty; };?
return delegate { return MyProperty; };фишка в том что хочется и гетор и сетор иметь, т.е. один раз передается нечто, и через это нечно можно дергать и сетор и геттор свойства. Хочется такую поддержку в самом языке, эмуляции выглядят громоздко.
И как это должно выглядеть по-твоему?
Надо будет в Своём Языке сделать такое
И как это должно выглядеть по-твоему?как это сделать красивше и оптимальнее, разработчики языка должны подумать . Прямолинейный вариант может выглядить так.
public class Test
{
public PropertyDelegate<string> Test1
{
new MyClass.;
}
}
public class MyClass
{
public string MyProperty
{
get
{
throw new NotImplementedException;
}
set
{
throw new NotImplementedException;
}
}
}
public class PropertyDelegate<T>
{
private readonly Getter<T> getter;
private readonly Setter<T> setter;
public PropertyDelegate(Getter<T> getter, Setter<T> setter)
{
this.getter = getter;
this.setter = setter;
}
public T Value
{
get
{
return getter;
}
set
{
setter(value);
}
}
}
public delegate T Getter<T>
public delegate void Setter<T>(T t);
и компилятор собачку разворачивает вот в такое
public PropertyDelegate<string> Test1
{
MyClass myClass = new MyClass;
return new PropertyDelegate<string>(
delegate
{
return myClass.MyProperty;
},
delegate(string t)
{
myClass.MyProperty = t;
});
}
Можно было и без дженериков.
Можно было и без дженериков.напиши как
Оставить комментарий
6yrop
Например,вот такое можно написать
а вот так нельзя
да и свойство-делегат можно вызывать как в качестве гетора, так и в качестве сетора .
Тогда бы можно было нормальный датабайндинг забабахать средствами самого сишарпа , и тогда вот вам и нормальный ителисенс, нормальная навигация по коду, рефакторинг, ну и вообще все прелести
Такое требуется не только в датабайндинге, но сейчас не вспомню
Как там с этим в других языках? в том же Немерле?