Что означает это двоеточие в этом коде C #? - PullRequest
7 голосов
/ 05 октября 2011

Что означает: в определении класса или интерфейса в 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; }
}

Ответы [ 4 ]

7 голосов
/ 05 октября 2011

: используется, чтобы указать, что интерфейс на левой стороне оператора реализует (технически классы, реализующие интерфейс, дадут реализацию) интерфейсы на правой стороне.

: используется таким же образом, чтобы указать, когда класс также реализует один или несколько интерфейсов.

5 голосов
/ 05 октября 2011

Поскольку IServer является интерфейсом, двоеточие означает, что интерфейс IServer наследуется от интерфейсов IServerManager, ISimulation, ISiteEx. Другими словами: любой класс или структура, которые реализуют IServer, должны также реализовывать другие три.

Если бы типом слева от двоеточия был класс или структура, двоеточие указывало бы, что класс или структура реализуют интерфейсы. Также в этом случае, если один (и только один) из типов справа является классом, это будет означать, что тип слева наследуется от этого класса. Классы могут наследоваться от многих интерфейсов, но только от одного класса.

4 голосов
/ 05 октября 2011

Это означает, что интерфейс реализует другой интерфейс или число интерфейсов.

3 голосов
/ 05 октября 2011

: это способ реализации наследования в c # Существует несколько сценариев, которые могут его использовать.

  1. Интерфейс, расширяющий другой интерфейс. (Это в случае с примером в вашем вопросе.)

  2. Класс, реализующий интерфейс

  3. Класс, расширяющий другой класс

Класс Aможет реализовывать несколько интерфейсов, но может расширять только один класс.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...