public class Class2 : IClass1
{
public string cc = null;
public Class2() : base("redis")
{
sssss = "1111";
cc = "cc";
}
public override void SetConfig()
{
test();
}
public void test()
{
Console.Write(cc);
}
}
public abstract class IClass1
{
public string cc = null;
public string sssss = string.Empty;
public IClass1(string cc2)
{
this.cc = cc2;
SetConfig();
}
public abstract void SetConfig();
}
main.cs里调用new Class2(), 这个可以看出先调用base("redis"), 进而调用SetConfig(),因为他是抽象函数,所以就调到了Class2.SetConfig,这里test()里输出的cc是初始值。因为Class2()的函数体还没有被执行。所以cc="cc"就没有被执行。所以这里就有一种情况:在构造函数还没有被执行的情况下,它的其他函数被执行了。