Можете ли вы напрямую назначить метод доступа для свойства C #? - PullRequest
0 голосов
/ 01 января 2012

Вместо чего-то вроде этого:

Func<bool> func;

bool Property {
    get {return func();}
}

Я хочу иметь возможность сделать что-то вроде этого:

Property.get = () => booleanReturningExpression;

Возможно ли это, или вы можете приблизить меня к этомуподдельный синтаксис?

1 Ответ

3 голосов
/ 01 января 2012

Нет, ничего подобного в чистом C # невозможно.Вы можете использовать поля или (readonly) свойства:

public Func<bool> PropertyGet;

и назначить его, но это не очень хорошее решение.Если вам нужна эта функция для чего-то большего, чем синтаксический сахар, вы можете делегировать из свойства:

protected Func<bool> PropertyGet;

public bool Property {
    get { return this.PropertyGet(); }
}

И вы сможете установить его очень похожим образом.Кроме того, вы можете имитировать делегатов, если вы действительно хотели Property.get и установить метод по умолчанию для пользовательского класса Property.(Я не знаю, возможно ли это в C #, но это в VB.NET.)

...