有没有办法在 C# 中为自定义 class 的泛型集合创建方法?
Is there a way to create a method for a generic collection of a custom class in C#?
我想知道这是否可能。因为我对 IEnumerator/IEnumerables 不太满意,所以我不知道有什么方法可以做到。
我想它会是这样的:
public namespace cookietest
{
public static class Program{
public List<Cookie> cookies = new List<Cookie>();
CookieJar cookieJar = cookies.ToCookieJar();
}
public class Cookie{
public int size;
//Implementatin of ToCookieJar()
}
}
我知道有更好的设计解决方案,这真的不是问题,但我很好奇,找不到任何相关信息。
您要找的是extension methods。
给定一个引用类型,例如 List<T>
,您可以 "extend" 使用您自己的方法,如下所示:
public static class Program
{
public List<Cookie> cookies = new List<Cookie>();
CookieJar cookieJar = cookies.ToCookieJar();
}
public class Cookie
{
public int size;
}
public static class CookieExtensions
{
public static CookieJar ToCookieJar(this IEnumerable<Cookie> list)
{
return new CookieJar(list);
}
}
我想知道这是否可能。因为我对 IEnumerator/IEnumerables 不太满意,所以我不知道有什么方法可以做到。 我想它会是这样的:
public namespace cookietest
{
public static class Program{
public List<Cookie> cookies = new List<Cookie>();
CookieJar cookieJar = cookies.ToCookieJar();
}
public class Cookie{
public int size;
//Implementatin of ToCookieJar()
}
}
我知道有更好的设计解决方案,这真的不是问题,但我很好奇,找不到任何相关信息。
您要找的是extension methods。
给定一个引用类型,例如 List<T>
,您可以 "extend" 使用您自己的方法,如下所示:
public static class Program
{
public List<Cookie> cookies = new List<Cookie>();
CookieJar cookieJar = cookies.ToCookieJar();
}
public class Cookie
{
public int size;
}
public static class CookieExtensions
{
public static CookieJar ToCookieJar(this IEnumerable<Cookie> list)
{
return new CookieJar(list);
}
}