Tag: 结构类型

C#中generics类型的命名空间范围别名

让我们举个例子: public class X { } public class Y { } public class Z { } public delegate IDictionary<Y, IList> Bar(IList x, int i); public interface IFoo { // … Bar Bar { get; } } public class Foo : IFoo { // … public Bar Bar { get { return null; //… } } […]

C#是否与Scala的结构类型相当?

在Scala中,我可以定义结构类型如下: type Pressable = { def press(): Unit } 这意味着我可以定义一个函数或方法,它将一个可压缩的参数作为参数,如下所示: def foo(i: Pressable) { // etc. 我传递给这个函数的对象必须为它定义一个名为press()的方法,它匹配类型中定义的类型签名 – 不带参数,返回Unit(Scala的void版本)。 我甚至可以使用结构类型内联: def foo(i: { def press(): Unit }) { // etc. 它基本上允许程序员拥有鸭子打字的所有好处,同时仍然具有编译时类型检查的好处。 C#有类似的东西吗? 我用谷歌搜索但找不到任何东西,但我不熟悉C#的任何深度。 如果没有,有没有计划添加这个?