110,545
社区成员
发帖
与我相关
我的任务
分享
using System;
namespace PCTestC
{
public class Class0
{
}
public class Class1 : Class0
{
}
public class Class2 : Class1
{
}
public class Class3 : Class2
{
}
public class Class4 : Class3
{
}
public class Class5 : Class4
{
}
public class Class6 : Class5
{
}
public class Test
{
static void Main()
{
//Begin
Console.WriteLine("Begin!");
//End
Console.ReadKey();
}
}
}
using System;
using System.Collections.Generic;
interface IC
{
void M(int i);
//void M(double i);
}
class A : IC
{
void IC.M(int i)
{
Console.WriteLine("In class A");
}
}
class B1 : A
{
//void IC.M(double i)
//{
// Console.WriteLine("In class A");
//}
}
class B2:B1
{
//void IC.M()
//{
// Console.WriteLine("In class A");
//}
}
class Program
{
static void Main()
{
IC ic;
ic = new B2(); ic.M(100);
ic = new B1(); ic.M(100);
Console.ReadKey();
}
}
using System;
interface IA
{
new void Test();
}
interface IB : IA
{
new void Test();
}
class B : IB,IA
{
void IA.Test()
{
Console.WriteLine("B:IA!");
}
void IB.Test()
{
Console.WriteLine("B:IB!");
}
}
class BB : B,IB
{
void IA.Test()
{
Console.WriteLine("BB:IA!");
}
void IB.Test()
{
Console.WriteLine("BB:IB!");
}
}
class TestA
{
static void Main(string[] args)
{
B b = new B();
//测试IA/IB接口
IA ia = b; ia.Test();
IB ib = b; ib.Test();//说明IB带入了IA,相当于IB=IB,IA
BB bb = new BB();
//测试IA接口
IA iaa = bb;
iaa.Test();
Console.ReadKey();
}
}
using System;
using System.Collections.Generic;
interface IC
{
void M();
}
class A : IC
{
void IC.M()
{
Console.WriteLine("In class A");
}
}
class B1 : A
{
//public void M()
//{
// Console.WriteLine("In class B1");
//}
//void IC.M()
//{
// Console.WriteLine("In class A");
//}
}
class B2 : A, IC
{
void IC.M()
{
Console.WriteLine("In class B2");
}
}
class Program
{
static void Main()
{
List<IC> cs = new List<IC>();
cs.Add(new A());
cs.Add(new B1());
cs.Add(new B2());
foreach (IC c in cs)
c.M();
IC ic;
ic = new B2(); ic.M();
ic = new B1(); ic.M();
Console.ReadKey();
}
}
using System;
using System.Collections.Generic;
interface IC
{
void M();
}
class A : IC
{
void IC.M()
{
Console.WriteLine("In class A");
}
}
class B1 : A
{
public void M()
{
Console.WriteLine("In class B1");
}
//void IC.M()
//{
// Console.WriteLine("In class B1");
//}
}
class B2 : A, IC
{
void IC.M()
{
Console.WriteLine("In class B2");
}
}
class Program
{
static void Main()
{
IC ic = new B1(); ic.M();
Console.ReadKey();
}
}
using System;
interface IA
{
new void Test();
new void TestNew();
}
interface IB:IA
{
new void Test();
}
class B:IB
{
//public virtual void Test()
//{
// Console.WriteLine("B:default!");
//}
public virtual void TestNew()
{
Console.WriteLine("B:default-NEW!");
}
void IA.Test()
{
Console.WriteLine("B:IA!");
}
void IB.Test()
{
Console.WriteLine("B:IB!");
}
//void IA.TestNew()
//{
// Console.WriteLine("B:IA-NEW!");
//}
//显式接口声明中的“IB.TestNew”不是接口成员
//void IB.TestNew()
//{
// Console.WriteLine("B:IB-NEW!");
//}
}
class TestA
{
static void Main(string[] args)
{
B a = new B();
//测试默认接口
//a.Test();
//a.TestNew();
//测试IA接口
IA ia = a;
ia.Test();
ia.TestNew();
//测试IA接口
IB ib = a;
ib.Test();
ib.TestNew();
Console.ReadKey();
}
}
interface IA
{
new void Test();
}
interface IB:IA
{
new void Test();
}
interface IA
{
new void Test();
}
interface IB
{
new void Test();
}
using System;
using System.Collections.Generic;
interface IA
{
void Test();
}
interface IB
{
void Test();
}
class B:IA,IB
{
public virtual void Test()
{
Console.WriteLine("B:default!");
}
void IA.Test()
{
Console.WriteLine("B:IA!");
}
void IB.Test()
{
Console.WriteLine("B:IB!");
}
}
class BB:B
{
private new void Test()
{
//base.Test();
Console.WriteLine("BB!");
}
}
class BBB : BB
{
public new void Test()
{
//base.Test();
Console.WriteLine("BBB!");
}
}
class TestA
{
static void Main(string[] args)
{
BBB aaa = new BBB();
//测试默认接口
B a = aaa;
a.Test();
//测试IA接口
IA ia = aaa;
//IA ia = aaa as IA
ia.Test();
Console.ReadKey();
}
}
using System;
using System.Collections.Generic;
interface ITest
{
void Test();
}
class B:ITest
{
public virtual void Test()
{
Console.WriteLine("B:ITest!");
}
}
class BB:B,ITest
{
private new void Test()
{
//base.Test();
Console.WriteLine("BB:override!");
}
}
class BBB : BB
{
public new void Test()
{
//base.Test();
Console.WriteLine("BBB:override!");
}
}
class TestA
{
static void Main(string[] args)
{
BBB aaa = new BBB();
ITest i = aaa;
i.Test();
Console.ReadKey();
}
}
using System;
class B
{
public void Func(long val)
{
Console.WriteLine("LONG");
}
public void Func(double val)
{
Console.WriteLine("DOUBLE");
}
}
class Test
{
static void Main()
{
B a = new B();
int val = 100;
a.Func(val);
Console.ReadKey();
}
}
#define INTA
#define DOUBLE
using System;
public class B
{
public B()
{
Console.WriteLine("调用基类开始:ClassB!");
int val = 100;
Func(val);
}
#if INT
public virtual void Func(int val)
{
Console.WriteLine("Type is {0},{1}", this.GetType(), "ClassB-Func!-int");
}
#endif
public virtual void Func(long val)
{
Console.WriteLine("Type is {0},{1}", this.GetType(), "ClassB-Func!-long");
}
}
public class BB : B
{
public BB()
{
Console.WriteLine("调用扩展类开始:ClassBB!");
int val = 100;
Func(val);
}
#if INT
public override void Func(int val)
{
Console.WriteLine("Type is {0},{1}", this.GetType(), "ClassBB-Func!-int");
}
#endif
public override void Func(long val)
{
Console.WriteLine("Type is {0},{1}", this.GetType(), "ClassBB-Func!-long");
}
#if DOUBLE
public void Func(double val)
{
Console.WriteLine("Type is {0},{1}", this.GetType(), "ClassBB-Func!-double");
}
#endif
}
class Test
{
static void Main()
{
Console.WriteLine("======构造调用========");
BB aa = new BB();
B a;
int val = 100;
Console.WriteLine("======非构造调用========");
Console.WriteLine("变量B类型开始:ClassB!");
a = aa;
a.Func(val);
Console.WriteLine("变量BB类型开始:ClassBB!");
aa.Func(val);
Console.ReadKey();
}
}
//[0]重写方法不被视为是在类上进行声明的,而是在基类上声明的方法的新实现。
//[1]非构造调用:派生类的原始方法相匹配的方法
//[2]非构造调用:派生类的原始方法相兼容的方法
//[3]非构造调用:基类的方法相匹配的方法
//[4]非构造调用:基类的方法相兼容的方法
//[5]构造调用:派生类的原始方法相匹配的方法
//[6]构造调用:派生类的原始方法相兼容的方法
//[7]构造调用:基类的方法相匹配的方法
//[8]构造调用:基类的方法相兼容的方法
#define INT
#define DOUBLE
using System;
public class B
{
public B()
{
Console.WriteLine("调用基类开始:ClassB!");
int val = 100;
Func(val);
}
#if INT
public virtual void Func(int val)
{
Console.WriteLine("Type is {0},{1}", this.GetType(), "ClassB-Func!-int");
}
#endif
public virtual void Func(long val)
{
Console.WriteLine("Type is {0},{1}", this.GetType(), "ClassB-Func!-long");
}
}
public class BB : B
{
public BB()
{
Console.WriteLine("调用扩展类开始:ClassBB!");
int val = 100;
Func(val);
}
#if INT
public new void Func(int val)
{
Console.WriteLine("Type is {0},{1}", this.GetType(), "ClassBB-Func!-int");
}
#endif
public override void Func(long val)
{
Console.WriteLine("Type is {0},{1}", this.GetType(), "ClassBB-Func!-long");
}
#if DOUBLE
public void Func(double val)
{
Console.WriteLine("Type is {0},{1}", this.GetType(), "ClassBB-Func!-double");
}
#endif
}
public class BBB : BB
{
public BBB()
{
Console.WriteLine("调用扩展类开始:ClassBBB!");
int val = 100;
Func(val);
}
#if INT
public new void Func(int val)
{
Console.WriteLine("Type is {0},{1}", this.GetType(), "ClassBBB-Func!-int");
}
#endif
public override void Func(long val)
{
Console.WriteLine("Type is {0},{1}", this.GetType(), "ClassBBB-Func!-long");
}
#if DOUBLEs
public void Func(double val)
{
Console.WriteLine("Type is {0},{1}", this.GetType(), "ClassBBB-Func!-double");
}
#endif
}
class Test
{
static void Main()
{
BB bb = new BBB();
int val = 100;
bb.Func(val);
Console.ReadKey();
}
}