Gil*_*lla 3 c# linq generics extension-methods linq-to-xml
扩展方法可以说:List作为参数之一吗?
public static IEnumerable<XElement> GetSequenceDescendants(this IEnumerable<XElement> elements, params List<XName> names)
{
//do something
}
Run Code Online (Sandbox Code Playgroud)
扩展方法可以对参数类型有任何限制吗?
简短的回答是扩展方法只是一个公共静态方法,可以像第一个参数的实例方法一样访问(感谢this关键字).这意味着您可以使用可在任何静态方法中使用的相同参数.
但是,如果您希望参数实际上是通用的,则需要将方法更改为:
public static IEnumerable<TElement> GetSequenceDescendants<TElement, TName>(this IEnumerable<TElement> elements, List<TName> names)
{
//do something
}
Run Code Online (Sandbox Code Playgroud)
您必须在方法定义中指定所有泛型参数.
此外,你不能使用除params数组之外的任何关键字,即params TName[]可以,但params List<TName>不是.
| 归档时间: |
|
| 查看次数: |
1095 次 |
| 最近记录: |