sealed partial c#