首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >C#的RoR委托等效项

C#的RoR委托等效项
EN

Stack Overflow用户
提问于 2019-07-11 08:55:40
回答 1查看 102关注 0票数 -2

在Ruby on Rails (https://apidock.com/rails/Module/delegate)上,有没有一些模式/语法/库可以让C#实现类似委托助手方法的功能?

问题是,如果你在谷歌上搜索C#的委托,你只能找到关于C#的委托概念的信息,这与rails中的概念略有不同。

继续这段旅程,Javascript/Typescript是否也有等价物?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-07-11 09:15:15

在c#中没有等价物,您需要在每种情况下手动实现它(创建外观方法)。

链接中的一个示例:

代码语言:javascript
复制
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#:

代码语言:javascript
复制
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
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56980337

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档