在Ruby on Rails (https://apidock.com/rails/Module/delegate)上,有没有一些模式/语法/库可以让C#实现类似委托助手方法的功能?
问题是,如果你在谷歌上搜索C#的委托,你只能找到关于C#的委托概念的信息,这与rails中的概念略有不同。
继续这段旅程,Javascript/Typescript是否也有等价物?
发布于 2019-07-11 09:15:15
在c#中没有等价物,您需要在每种情况下手动实现它(创建外观方法)。
链接中的一个示例:
class Foo
CONSTANT_ARRAY = [0,1,2,3]
@@class_array = [4,5,6,7]
def initialize
@instance_array = [8,9,10,11]
end
delegate :sum, to: :CONSTANT_ARRAY
delegate :min, to: :@@class_array
delegate :max, to: :@instance_array
end
Foo.new.sum # => 6
Foo.new.min # => 4
Foo.new.max # => 11
可以这样翻译成c#:
public class Foo
{
public static readonly IReadOnlyList<int> CONSTANT_ARRAY = new[] {0, 1, 2, 3};
public static int[] class_array = {4, 5, 6, 7};
public int[] instance_array = {8, 9, 10, 11};
public int sum() => CONSTANT_ARRAY.Sum();
public int min() => class_array.Min();
public int max() => this.instance_array.Max();
}
...
new Foo().sum(); // => 6
new Foo().min(); // => 4
new Foo().max(); // => 11
https://stackoverflow.com/questions/56980337
复制相似问题