111,097
社区成员




abstractC InterfaceB.ToAbstractC
{
get { return this as abstractC; }
}
using System;
using System.Collections;
using System.Collections.Generic;
using System.Text;
using System.Reflection;
namespace ConsoleApplication45
{
public abstract class abstractC
{
public string ClassName = "abstractC";
public abstract char Method_C();
}
public interface InterfaceB
{
abstractC ToAbstractC { get;}
char Method_B();
}
class A : abstractC, InterfaceB
{
private char a='A', b='B', c='C';
public int Method_A()
{
return a;
}
public override char Method_C()
{
return c;
}
char InterfaceB.Method_B()
{
return b;
}
abstractC InterfaceB.ToAbstractC
{
get { return this; }
}
}
class Program
{
static void Main(string[] args)
{
Assembly ass = Assembly.GetExecutingAssembly();
Type _Asstype = ass.GetType(new A().ToString(),true);
InterfaceB pi = Activator.CreateInstance(_Asstype) as InterfaceB;
// InterfaceB
Console.WriteLine(pi.Method_B());
// abstractC
Console.WriteLine(pi.ToAbstractC.ClassName);
Console.WriteLine(pi.ToAbstractC.Method_C());
// class A 的内容不可见
// Console.WriteLine(pi.Method_A());
Console.Read();
}
}
}