【发布时间】:2013-09-27 02:28:01
【问题描述】:
我想这是我关于同一主题的第二篇文章,有点...
无论如何,我想通过传递一个 AI 行为来替换或添加来动态更新我的代理 AIbundles 类:
*代码不工作
public class agent
{
AIbundles = new AIbundle();
public void UpdateBehavior (object Behavior)
{
object CastedBehavior = (Behavior.type) Behavior; //Cast
this.agent.AIbundles.(Behavior.type) = CastedBehavior;
}
}
我的 AIbundles 类示例(极其简化)
public class AIbundles
{
ExampleBehavior1 ExampleBehavior1;
ExampleBehavior2 ExampleBehavior2;
ExampleBehavior3 ExampleBehavior3;
AIbundles()
{
ExampleBehavior1 = new ExampleBehavior1();
ExampleBehavior2 = new ExampleBehavior2();
ExampleBehavior3 = new ExampleBehavior3();
}
}
遗憾的是,我很清楚这是一种非常糟糕的实现方式,是否有更好的方法来动态处理对象?
【问题讨论】:
-
这里到底有什么问题?
-
您可能对策略模式感兴趣。 en.wikipedia.org/wiki/Strategy_pattern
-
简而言之,我正在尝试创建一个方法,该方法将 X 对任何可以使用 X 的 Object 进行 ~
-
所以你有不同的行为实现,想要一个代理来处理所有不同的行为,对吗?
-
@Ela 差不多,我想用一种方法来处理多种不同类型的对象~我知道怎么做,只是不是 GOOD 方法:P
标签: c# object types casting type-conversion