[英]Is it possible to access static member variables within a generic method (C#)?
[英]Are F#'s generic member constraints possible within C#?
F#允许约束类型成员的泛型类型,类似于:
type ClassWithMemberConstraint<'T when 'T : (static member StaticProperty : unit)> =
class end
这非常方便,特别是因为CLR不允许使用静态成员定义接口。 因为F#允许这样的约束,我猜它意味着CLR也允许通用成员约束,但从我所知,这在C#中是不可能的。
有没有办法在C#中表达这种行为?
因为F#允许这样的约束,我猜它意味着CLR也允许通用成员约束
抱歉不行。 可以说,F#成员约束是在“IL之外”实现的。 具有成员约束的函数不会编译到IL方法中,而是存储在程序集中的F#元数据中。 然后,每次调用这样的函数时,其代码都在调用站点内联,其泛型类型专用于该特定位置使用的内容。 这就是为什么具有成员约束的所有函数必须标记为inline
的顺序。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.