.NET 2.0/C# 中泛型方法的元数据的签名格式是什么?
例如,在 C# 中使用 out
关键字的方法中的参数将显示在元数据签名中,前面带有与号 &
。 我正在尝试为通用方法创建签名,但我不想使用元数据 API 来解决这个问题,它肯定记录在某处吗?
以下是 Socket 类上的 BeginReceiveFrom 含义的示例:
System.IAsyncResult([]System.Byte,System.Int32,System.Int32,
System.Net.Sockets.SocketFlags,&System.Net.EndPoint,
System.AsyncCallback,System.Object)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
对于非构造类型,有一个反引号,后跟参数数量,例如
来自 ECMA 335,第 10.7.2 节:
不确定构造类型......
There's a backtick followed by the number of arguments, for the unconstructed type, e.g.
From ECMA 335, section 10.7.2:
Not sure about constructed types...
要声明泛型方法,您可以使用
!!T
来引用泛型参数:或者您可以使用它们的编号:
并调用您提供实例化的泛型方法。 但是,实例化中引用的类型是关于调用的方法,而不是您调用它的位置:
如果该方法是泛型类型的一部分,则可以使用
指定类型实例化>!T
以类似的方式引用类型参数。 请注意,按照惯例,泛型类型在类型名称后有一个 `,后跟泛型参数的数量:To declare a generic method you use
!!T
to refer to the generic parameters:or you can use their number:
and to call a generic method you provide the instantiation. However, the types referred to in the instantiation are wrt the the called method, not where you're calling it from:
If the method is part of a generic type, you specify the type instantiation using
!T
to refer to the type parameters in a similar fashion. Note that it is a convention that generic types have a ` after the type name, followed by the number of generic arguments: