c# sealed partial class