Мне интересно, существует ли какой-либо подход для реализации шаблона нулевого объекта в С#. Общий нулевой объект является подклассом всех ссылочных типов, как и Nothing
в Scala. Кажется,
public class Nothing<T> : T where T : class
Но он не может скомпилировать, и я понятия не имею , как реализовать методы T
для обеспечения поведения по умолчанию или исключения исключений. Вот несколько соображений:
- Использовать отражение?
- Использовать дерево выражений при создании
Nothing<T>
? Возможно, это похоже на Moq. И еще вопрос: можно ли использовать mock framework/library в кодах продуктов? - Использовать динамические типы?
Я ЗНАЮ, возможно, я должен реализовать конкретный нулевой объект для определенного типа. Мне просто интересно узнать, есть ли какие-либо решения.
Любое предложение? Спасибо.