c# 如何用组合替代继承