使用类Person委派Action Lambda

时间:2015-04-25 14:21:47

标签: c# lambda delegates

我有以下问题:我想创建一个Lambda,它应该打印类Person的结果。打印应该如下所示:ResetName, after (Name ==null) = True但我在p上出错了。现在打印出来的是:NAAM PERSOON VOOR = ALFREDNAAM PERSOON NA =

        Person per = new Person();
        per.Name = "ALFRED";
        output.AppendFormat("NAAM PERSOON VOOR = " + per.Name);

        Action<Person> resetName = (Person p) => { p.Name = null; };
        resetName(per);
        output.AppendFormat("NAAM PERSOON NA = " + per.Name);

        Person p1 = new Person();
        Person p2 = new Person();

        p1.Name = "KAREL";
        p2.Name = "FREEK";

        Methods.ResetName(p1);
        resetName(p2);

        if (p1.Name != p2.Name) { passed = false; Console.WriteLine("ERROR IN resetperson"); }

        return output.ToString();

1 个答案:

答案 0 :(得分:0)

如果您提供a good, minimal, complete code example以及更明确的问题陈述,这将有所帮助。特别是:

  • 向我们展示Methods.ResetName()的实现,因为您的resetName委托显然应该具有相同的效果。
  • 准确地解释代码的实际效果应该是您想要的实际输出(您提供的文本作为示例输出 - {{1} - 对我来说看起来不像真正的输出,但看起来更像是代码的效果的描述

那就是说,你真正想要的东西似乎是这样的:

ResetName, after (Name ==null) = True

如果这不能解决您的问题,请编辑您的问题,以便明确并且可以回答。有关改进问题的其他方法的建议,请参阅https://stackoverflow.com/help/how-to-ask