Одна опция, которую я написал до , использует анонимные типы. Например, у вас будет:
public void Foo(string x, string y, string z) // x and z must not be null
{
new { x, z }.AssertNoNullElements();
}
с помощью общего метода AssertNotNull
, который выполняет некоторое отражение и т. Д. Один раз и кэширует доступ к свойству как делегат, чтобы максимально снизить производительность.
Это не то, что я обычно рекомендую, хотя. Он не защищен от рефакторинга, он создает новый объект при каждом вызове и, как правило, представляет собой злоупотребление анонимными типами. По общему признанию, если это только для тестов, производительность не так плоха ...