私はこのコードを書いています:
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 メソッドでキャスターを宣言せずに Foo を Foo1 にキャストする方法は、Foo には 100 以上のメソッドがあります。
助けてくれてありがとう