C#类的默认方法

时间:2011-02-28 17:07:48

标签: c# class syntax

您可以指定一个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 个答案:

答案 0 :(得分:13)

覆盖ToString(),在许多发生字符串转换的场景中调用它:

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

您所指的“默认”是Object.ToString()的默认实现,只是返回类型名称:

  

默认实现返回Object类型的完全限定名称。

答案 1 :(得分:2)

听起来像“默认方法”,你的意思是“控制类型实例如何在Write等方法中显示的方法”。如果是这样,您要执行的操作是覆盖ToString方法。

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