Nota
L'accés a aquesta pàgina requereix autorització. Pots provar d'iniciar sessió o canviar de directori.
L'accés a aquesta pàgina requereix autorització. Pots provar de canviar directoris.
Declare clases mediante la class palabra clave , como se muestra en el ejemplo siguiente:
class TestClass
{
// Methods, properties, fields, events, delegates
// and nested classes go here.
}
C# solo admite la herencia única. Es decir, una clase solo puede heredar la implementación de una clase base. Sin embargo, una clase puede implementar más de una interfaz.
La documentación de referencia del lenguaje C# cubre la versión más reciente publicada del lenguaje C#. También contiene documentación inicial sobre las características de las versiones preliminares públicas de la próxima versión del lenguaje.
La documentación identifica cualquier característica introducida por primera vez en las últimas tres versiones del idioma o en las versiones preliminares públicas actuales.
Sugerencia
Para buscar cuándo se introdujo por primera vez una característica en C#, consulte el artículo sobre el historial de versiones del lenguaje C#.
Para obtener más información sobre las clases, las interfaces y la herencia, consulte el artículo sobre herencia en la sección aspectos básicos.
Puede declarar clases directamente dentro de un espacio de nombres. No anida estas clases dentro de otras clases. Puede convertir estas clases en public o internal. De forma predeterminada, las clases son internal.
Puede declarar miembros de clase, incluidas las clases anidadas, como , , , , o private protectedprivate. internalprotectedprotected internalpublic De forma predeterminada, los miembros son private.
Para obtener más información, vea Modificadores de acceso.
Puede declarar clases genéricas que tengan parámetros de tipo. Para obtener más información, vea Clases genéricas.
Una clase puede contener declaraciones de los miembros siguientes:
- Constructores
- Constantes
- Campos
- Finalizadores
- Métodos
- Propiedades
- Indexers
- Operadores
- Eventos
- delegados
- Clases
- Interfaces
- Tipos de estructura
- Tipos de enumeración
Ejemplo
En el ejemplo siguiente se muestra cómo declarar campos de clase, constructores y métodos. También muestra la creación de instancias de objetos y la impresión de datos de instancia. En este ejemplo, se declaran dos clases. La primera clase, Child, contiene dos campos privados (name y age), dos constructores públicos y un método público. La segunda clase, StringTest, contiene Main.
class Child
{
private int age;
private string name;
// Default constructor:
public Child()
{
name = "N/A";
}
// Constructor:
public Child(string name, int age)
{
this.name = name;
this.age = age;
}
// Printing method:
public void PrintChild()
{
Console.WriteLine("{0}, {1} years old.", name, age);
}
}
class StringTest
{
static void Main()
{
// Create objects by using the new operator:
Child child1 = new Child("Craig", 11);
Child child2 = new Child("Sally", 10);
// Create an object using the default constructor:
Child child3 = new Child();
// Display results:
Console.Write("Child #1: ");
child1.PrintChild();
Console.Write("Child #2: ");
child2.PrintChild();
Console.Write("Child #3: ");
child3.PrintChild();
}
}
/* Output:
Child #1: Craig, 11 years old.
Child #2: Sally, 10 years old.
Child #3: N/A, 0 years old.
*/
Comentarios
Solo puede acceder a los campos privados (name y age) a través del método público de la Child clase . Por ejemplo, no puede imprimir el nombre del elemento secundario desde el Main método mediante una instrucción como esta:
Console.Write(child1.name); // Error
El acceso a miembros privados de desde ChildMain solo es posible si Main es miembro de la clase . Los tipos declarados dentro de una clase sin un modificador de acceso tienen como valor predeterminado private, por lo que los miembros de datos de este ejemplo siguen siendo private si se quita la palabra clave . Por último, para el objeto creado mediante el constructor sin parámetros (child3), el age campo se inicializa en cero de forma predeterminada.
Especificación del lenguaje C#
Para obtener más información, consulte la Especificación del lenguaje C#. La especificación del lenguaje es el origen definitivo de la sintaxis y el uso de C#.