Общий шаблон нулевого объекта в C#

Мне интересно, есть ли какой-либо подход к реализации универсального шаблона нулевого объекта в C #. Общий нулевой объект является подклассом всех ссылочных типов, как Nothingв Scala. Похоже

public class Nothing<T> : T where T : class

Но он не может скомпилироваться, и я понятия не имею , как реализовать методы T, чтобы обеспечить поведение по умолчанию или создать исключение .Вот некоторые мысли:

  1. Использовать отражение?
  2. Использовать дерево выражений при создании Nothing<T>? Возможно, это похоже на Moq. И возникает еще один вопрос :Можно ли использовать фиктивный фреймворк/библиотеку в кодах продуктов?
  3. Использовать динамические типы?

Я ЗНАЮ, может быть, мне следует реализовать конкретный нулевой объект для определенного типа. Мне просто интересно узнать, есть ли какое-нибудь решение.

Любое предложение? Спасибо.

16
задан Kirin Yao 5 July 2012 в 08:10
поделиться