小编Rob*_*ler的帖子

尝试使用新的Func <int,int,int>来理解维基百科策略模式示例

我正在看这个,http://en.wikipedia.org/wiki/Strategy_pattern,我理解战略模式的概念,但有人可以解释一下C#的例子.

我真的不知道在Context类中定义"策略"的方式和原因,为什么它Func<T, T, T>只是两个参数传递给例如8,9?

static void Main(string[] args)
{

    var context = new Context<int>();

    // Delegate
    var concreteStrategy1 = new Func<int, int, int>(PerformLogicalBitwiseOr);

    // Anonymous Delegate
    var concreteStrategy2 = new Func<int, int, int>(
        delegate(int op1, int op2)
        {
            return op1 & op2;
        });

    // Lambda Expressions
    var concreteStrategy3 = new Func<int, int, int>((op1, op2) => op1 >> op2);
    var concreteStrategy4 = new Func<int, int, int>((op1, op2) => op1 << op2);

    context.Strategy = concreteStrategy1;
    var result1 = …
Run Code Online (Sandbox Code Playgroud)

c# design-patterns strategy-pattern

7
推荐指数
1
解决办法
982
查看次数

标签 统计

c# ×1

design-patterns ×1

strategy-pattern ×1