我写了这段代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Text;
using System.Net.Mail;
using System.Net;
public partial class Test : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        Foo m_oFoo = new Foo() { 
            S1 = "N"
        };
        List<Foo> m_List = new List<Foo>();
        m_List.Add(m_oFoo);
        IFoo m_oIFoo = (IFoo)m_List[0];
        m_oIFoo.S2 = "C";
        Response.Write(m_oIFoo.S1);
        Response.Write(m_oIFoo.S2);
    }
}
public class Foo
{
    public string S1 { get; set; }
    public Foo()
    {
    }
}
public class IFoo: Foo
{
    public string S2 { get; set; }
    public IFoo(){}
}
但是编译器说“无法在 'IFoo' 类型上投射 'Foo' 类型的对象。” 我如何将 Foo 转换为 Foo1 而无需声明具有所有 Foo 方法的施法者,因为这是一个示例,Foo 有 100 多个方法。
谢谢您的帮助