这样的事情在C#中应该是可能的,对吧?
public void Start ()
{
Class1 x = new Class1 ();
string s = Something (x);
Console.ReadKey ();
}
public string Something (IInterface obj)
{
return foo (obj); // <-- Problem line
}
public string foo (Class1 bar)
{
return "Class1";
}
public string foo (Class2 bar)
{
return "Class2";
}
interface IInterface {}
class Class1 : IInterface {}
class Class2 : IInterface {}发布于 2011-07-30 06:13:51
public string Something (IInterface obj)
{
return foo ((Class1)obj);
OR // There's no way compiler to know with method to call.
return foo ((Class2)obj);
}
public string foo (Class1 bar)
{
return "Class1";
}
public string foo (Class2 bar)
{
return "Class2";
}https://stackoverflow.com/questions/6879520
复制相似问题