Скорее всего, я просто сбит с толку и не хотел бы этого делать, если бы знал лучше, но вот что:
Когда у вас есть int myInt = 5;
, вы можете получить доступ к значению этого int, просто вызвав имя переменной: int myOtherInt = myInt + 1;
или myInt ++;
.
У меня есть структура, которую я хочу вести таким образом, и возвращать существующий тип значения.
Короче говоря, структура имеет поле Func и предоставляет результат этой функции; у него также есть поля Min / Max, которые вы используете для ограничения вывода независимо от необработанного результата функции.
Func<Foo, int> _func;
int _min;
int _max;
public MyStruct(Func<Foo, int> func, int min, int max) {...}
// Doesn't work
public int this
{
get { return Clamp(_min, _max, _func()); }
}
Clamp(min, max, val) {}
Итак, я хочу уметь писать:
var myStruct = new MyStruct((myFoo => myFoo.IntVal * 5), 1, 1000);
int myInt = myStruct + 5;