双11狂欢大促

盲盒赢 定制羽绒服

开启惊喜盲盒,抽取你的专属好礼

— 惊喜奖品抢先看 —

Decorator模式 出现了点问题!。。

zsyok zsyok 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区

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();
}
}


...全文
评论 4
收藏 已收藏
分享
返回顶部
zsyok
.NET社区 62,274 成员 668,968 内容