gpt4 book ai didi

c# - C# 中等效的 Objective-C 代码块

转载 作者:可可西里 更新时间:2023-11-01 07:55:55 26 4
gpt4 key购买 nike

我将如何在 C# 中编写等效代码:

typedef void (^MethodBlock)(int); 

- (void) fooWithBlock:(MethodBlock)block
{
int a = 5;
block(a);
}

- (void) regularFoo
{
[self fooWithBlock:^(int val)
{
NSLog(@"%d", val);
}];
}

最佳答案

像这样:

void Foo(Action<int> m)
{
int a = 5;
m(a);
}

void RegularFoo()
{
Foo(val => // Or: Foo(delegate(int val)
{
Console.WriteLine(val);
});
}

Action<T> 是一个只接受您指定类型的一个参数(在本例中为 int )的委托(delegate),它执行时不返回任何内容。另见一般 C# delegate reference .

对于像这样的简单案例,它非常简单。但是,我相信 Objective-C 中的 block 和 C# 中的委托(delegate)之间存在一些语义/技术差异,这可能超出了这个问题的范围。

关于c# - C# 中等效的 Objective-C 代码块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5823770/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com