public abstract class Component
{
public abstract void sampleOperation();
}
/*
* 具体的一个门
*/
public class Door : Component
{
public override void sampleOperation()
{
Console.WriteLine("Build a door!");
}
}
/*
* 一个装饰抽象类,下面派生出一个用来装饰门的锁子和一个把手
*/
public abstract class Decorator : Component
{
private Component component; public Decorator(Component _component)
{
this.component = _component;
} public override void sampleOperation()
{
this.component.sampleOperation();
}
}
/*
* 用来装饰门的把手
*/
public class Knob : Decorator
{
public Knob(Component component)
: base(component)
{ }
public override void sampleOperation()
{
base.sampleOperation();
Console.WriteLine("Add an Knob(把手)");
}
}
public class DecoratorPattern
{
Component door123 = new Door();//创建一个扇门(向下转型)
Decorator knob = new Knob(door123);//报错:字段初始值设定项无法引用非静态字段、方法或属性“tlogin.comm”
public void f1()
{
knob.sampleOperation();
}
}
public class test
{
public static void Main()
{
DecoratorPattern k = new DecoratorPattern();
k.f1();
}
}
字段初始值设定项无法引用非静态字段、方法或属性xxx.xxx请大家帮忙解决一下。。
一个get属性。
不是有个构造器,给component赋值吗?