Почему? Вы используете вид Adapter Pattern
и ваш класс должен выглядеть как
class Wrapper
{
public TypeA A {get;set;}
public TypeB B {get;set;}
public TypeC C{get;set;}
public Wrapper(TypeA A, TypeB B, TypeC C)
{
this.A = A;
// rest initialization
}
}
Теперь вы можете просто сказать
Wrapper w = new Wrapper(new TypeA(), ...);
w.A.SomeProperty;
Опять же, вместо этого условия проверки нуля if
вы можете использовать оператор Null Propagation , например
wrapper?.TypeA?.SomeProperty;
Вы можете использовать оператор Null Coalesce вместе, чтобы вернуть значение свойства по умолчанию в случае, если свойство равно null
wrapper?.TypeA?.SomeProperty ?? string.Empty;