La utilización de la palabra clave partial indica que otras partes de la clase, estructura o interfaz se pueden definir dentro del espacio de nombres. Todas las partes deben utilizar la palabra clave partial. Todas las partes deben estar disponibles en tiempo de compilación para formar el tipo final. Todas las partes deben tener la misma accesibilidad, ya sea public, private, etc.
Si alguna de las partes se declara abstracta, todo el tipo se considera abstracto. Si alguna de las partes se declara sellada, todo el tipo se considera sellado. Si alguna de las partes declara un tipo base, todo el tipo hereda esa clase.
Todas las partes que especifican una clase base deben concordar, pero las partes que omiten una clase base heredan igualmente el tipo base. Las partes pueden especificar diferentes interfaces base, pero el tipo final implementa todas las interfaces mostradas por todas las declaraciones parciales. Cualquier miembro de clase, estructura o interfaz declarados en una definición parcial está disponible para todas las demás partes. El tipo final es la combinación de todas las partes en tiempo de compilación.
Nota |
|---|
| El modificador partial no está disponible en declaraciones de delegado o enumeración. |
Los tipos anidados pueden ser parciales, aunque el tipo en el que están anidados no sea propiamente parcial. Por ejemplo:
class Container
{
partial class Nested
{
void Test() { }
}
partial class Nested
{
void Test2() { }
}
}
[System.SerializableAttribute]
partial class Moon { }
[System.ObsoleteAttribute]
partial class Moon { }
equivalen a:
[System.SerializableAttribute]
[System.ObsoleteAttribute]
class Moon { }
Por ejemplo, las siguientes declaraciones:
partial class Earth : Planet, IRotate { }
partial class Earth : IRevolve { }
equivalen a:
class Earth : Planet, IRotate, IRevolve { }