【发布时间】:2014-09-23 13:32:04
【问题描述】:
我在理解 lambda、委托等方面有困难,我希望有人能给我解决问题的方法,我能够更好地理解这些。基本上,当初始化类的对象时,可以创建(或更改)方法的主体,不是吗? 有点像这样:
假设我有 1 个类:A 类,如下所示:
public class ClassA{
int i;
public ClassA(int number)
{
i = number;
}
public void Foo(){}
}
出于演示目的非常简约,现在我在其他地方也有静态主,我想做的事情如下:创建 ClassA 的多个对象并使其在调用 ClassA.Foo 时得到不同的结果可以确定自己,它应该如何看起来语法明智?
static void Main(string[] args)
{
ClassA FooBlue = New ClassA(1){
public void Foo()
{
System.Console.WriteLine("I am a Fooranger Blue!");
};
ClassA FooPink = New ClassA(2){
public void Foo()
{
System.Console.WriteLine("My color is the manliest!");
};
...
所以现在当我这样做时:
...
FooBlue.Foo();
FooPink.Foo();
System.Console.ReadLine();
}
我在控制台上得到以下输出:
"I am a Fooranger Blue!"
"My color is the manliest!"
我只是再次提到,这是一个示例,绝不是出于实践的目的,但为了让我理解这些东西,如果有人可以提供一个给出所需解决方案的答案,包括 没用的整数i。
【问题讨论】:
-
请在您发布之前花更多时间格式化您的代码。这看起来很可怕,您在发布之前很容易看到这一点。如果您对自己的问题付出努力,其他人可能更愿意付出努力来帮助您。此外,据我所知,您的代码与委托或 lambda 表达式没有任何关系。您肯定还没有包含委托或 lambda 表达式...
-
@JonSkeet 我改变了我的格式(并添加了一个小句子来澄清我到底想要什么)希望现在更好。显然它没有编译,因为它是错误的,我想知道我应该如何正确地做。
-
这种格式对我来说仍然不正确 - 看看你的第一个代码 sn-p... 没有类声明,缩进仍然混乱。这就是你希望代码在 Visual Studio 中的样子吗?
-
@JonSkeet 对,我完全搞砸了班级声明,很抱歉还是新手。
标签: c# lambda delegates anonymous-methods