2011-10-05 22 views
7

Qué indica: en la clase o definición de interfaz en C#.¿Qué significa este colón en este código C#?

public interface IServer : IServerManager, ISimulation, ISiteEx 
{ 
    /// <summary> 
    /// Returns the highest game version that supported by this server. 
    /// Higher versions aren't guaranteed to work perfect. 
    /// </summary> 
    Version MaxSupportedGameVersion { get; } 

    /// <summary> 
    /// Gets/sets the current server configuration. 
    /// </summary> 
    ServerConfiguration Configuration { get; set; } 
} 
+0

En el futuro, proporcione un párrafo o dos que describa su pregunta en el cuerpo de la pregunta, en lugar de simplemente el asunto. –

Respuesta

7

: se utiliza para indicar que la interfaz en el lado izquierdo del operador está implementando (técnicamente, las clases que implementan la interfaz darán la aplicación) de las interfaces a la derecha.

: se usa de la misma manera para indicar cuándo una clase también está implementando una o más interfaces.

4

Significa que la interfaz está implementando otra interfaz o número de interfaces.

5

Debido IServer es una interfaz, el colon significa que la interfaz IServer hereda de la IServerManager, ISimulation, ISiteEx interfaces. En otras palabras: cualquier clase o estructura que implemente IServer también debe implementar las otras tres.

Si el tipo a la izquierda de los dos puntos fuera una clase o estructura, los dos puntos indicarían que la clase o estructura implementa las interfaces. También en este caso, si uno (y solo uno) de los tipos de la derecha era una clase, significaría que el tipo de la izquierda hereda de esta clase. Las clases pueden heredar de muchas interfaces, pero de una sola clase.

3

: es la forma de implementar la herencia en C# Hay varios escenarios que pueden usarlo.

  1. Una interfaz que se extiende otra interfaz. (Este es el caso con el ejemplo en su pregunta.)

  2. Una clase que implementa una interfaz

  3. Una clase que se extiende otra clase

Una clase puede implementar múltiples interfaces pero puede extender solo una clase.