我想为一些泛型类创建很多扩展方法,例如
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)
我得到"扩展方法只能在非泛型,非嵌套的静态类中声明".
而我正在试图猜测这种限制来自哪里并且没有任何想法.
编辑:仍然没有明确的问题愿景.似乎这只是因为某种原因没有实现.
public abstract class Entity : IEntity
{
[Key]
public virtual int Id { get; set; }
}
public class City:Entity
{
public string Code { get; set; }
}
public class BaseViewModel:IBaseViewModel
{
public int Id { get; set; }
}
public class CityModel:BaseViewModel
{
public string Code { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我的域和视图类...
和
用于映射扩展
public static TModel ToModel<TModel,TEntity>(this TEntity entity)
where TModel:IBaseViewModel where TEntity:IEntity
{
return Mapper.Map<TEntity, TModel>(entity);
}
Run Code Online (Sandbox Code Playgroud)
我正在使用如下
City city = GetCity(Id);
CityModel model = f.ToModel<CityModel, …Run Code Online (Sandbox Code Playgroud)