Метод по умолчанию для класса C # - PullRequest
1 голос
/ 28 февраля 2011

Привет, возможно ли указать метод, который является методом по умолчанию для класса C #? Я пишу короткий класс для вывода кода для встраивания видео, вот основная идея:

 public class EmbeddedVideo
{
    public string VideoPath { get; set; }
    public string ImagePath { get; set; }

    public string EmbedCode()
    {
        return "...";
    }
}

Теперь, если бы я сказал:

Response.Write(new EmbeddedVideo());

Будет выведен результат метода GetType (). Как я могу указать, что я бы хотел, чтобы метод EmbedCode () использовался по умолчанию в этом контексте?

Ответы [ 2 ]

13 голосов
/ 28 февраля 2011

Переопределить ToString(), который вызывается во многих сценариях, где происходит преобразование строки:

public override string ToString()
{
    return EmbedCode();
}

"default", на который вы ссылаетесь, является реализацией Object.ToString() по умолчанию, которая просто возвращает имя типа:

Реализация по умолчанию возвращает полное имя типа объекта.

2 голосов
/ 28 февраля 2011

Похоже, что под «методом по умолчанию» вы подразумеваете «метод, который управляет отображением экземпляров типа в таких методах, как Write». Если это так, то вы хотите переопределить метод ToString.

public override string ToString() {
  return EmbedCode();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...