Мне бы хотелось написать такой код:
class Zebra
{
    public lazy int StripeCount
    {
        get { return ExpensiveCountingMethodThatReallyOnlyNeedsToBeRunOnce(); }
    }
}
РЕДАКТ: Почему? Я думаю, что это выглядит лучше, чем:
class Zebra
{
    private Lazy<int> _StripeCount;
    public Zebra()
    {
        this._StripeCount = new Lazy(() => ExpensiveCountingMethodThatReallyOnlyNeedsToBeRunOnce());
    }
    public lazy int StripeCount
    {
        get { return this._StripeCount.Value; }
    }
}
При первом вызове свойства он будет запускать код в блоке get, а затем просто вернет значение из него.
Мои вопросы:
- Какие затраты будут связаны с добавлением такого ключевого слова в библиотеку?
 - В каких ситуациях это может быть проблематично?
 - Вы считаете это полезным?
 
Я не начинаю крестовый поход, чтобы получить это в следующей версии библиотеки, но мне любопытно, какие соображения должны иметь такую функцию, как это должно быть.