相关疑难解决方法(0)

为什么扩展方法只允许在非嵌套的非泛型静态类中使用?

为什么扩展方法只允许在非嵌套的非泛型静态类中使用?在嵌套的通用静态类中考虑扩展方法是没用的吗?

c#

32
推荐指数
2
解决办法
5873
查看次数

扩展方法要求将类声明为静态

为什么扩展方法要求声明类是静态的?这是编译器要求吗?

c# c#-3.0

25
推荐指数
1
解决办法
3430
查看次数

为什么在通用静态类中声明扩展方法是不可能的?

我想为一些泛型类创建很多扩展方法,例如

public class SimpleLinkedList<T> where T:IComparable
Run Code Online (Sandbox Code Playgroud)

我已经开始创建这样的方法:

public static class LinkedListExtensions
{
    public static T[] ToArray<T>(this SimpleLinkedList<T> simpleLinkedList) where T:IComparable
    {
       //// code
    }
}
Run Code Online (Sandbox Code Playgroud)

但是当我试图使LinkedListExtensions类像这样通用时:

public static class LinkedListExtensions<T> where T:IComparable
{
    public static T[] ToArray(this SimpleLinkedList<T> simpleLinkedList)
    {
         ////code
    }
}
Run Code Online (Sandbox Code Playgroud)

我得到"扩展方法只能在非泛型,非嵌套的静态类中声明".

而我正在试图猜测这种限制来自哪里并且没有任何想法.

编辑:仍然没有明确的问题愿景.似乎这只是因为某种原因没有实现.

c# generics extension-methods static

20
推荐指数
2
解决办法
7965
查看次数

标签 统计

c# ×3

c#-3.0 ×1

extension-methods ×1

generics ×1

static ×1