【发布时间】:2017-05-29 00:38:53
【问题描述】:
这是一种假设方法,允许数组使用单个对象可以使用的函数。这将允许数组使用仅对单个对象可用的方法。我只需要一个在所有类型的数组上运行的通用方法。此方法将对该数组的各个值运行另一种方法。然后这些单独的值将作为数组返回。这适用于所有类型。如果可能,此方法不应该对对象可以使用它有任何限制。重复一遍,代码中的任何地方都没有约束。这可能以另一种形式出现吗?这在 C# 中合法吗?
string[] s = new string[] { "hi", "hello", "what's up" }
static void Main(string[] args)
{
string[] newS = s.ArrayTo(() => string.Remove(0,1));
foreach(string str in newS)
Console.WriteLine(str);
}
static class Ext
{
static T[] ArrayTo<T>(this T[] t,Action a)
{
List<T> ret = new List<T>();
foreach(T tOb in t)
{
ret.Add(
//t.a()); This line doesn't work
}
return ret.ToArray();
}
}
输出:i , hello , hat's up
【问题讨论】:
-
嗯...请解释反对票。
-
您的问题不清楚,请尝试编辑您的答案,您的意思是什么:允许数组轻松地运行单个对象?我们很乐意为您提供帮助
-
抱歉,没有代码我找不到另一种解释方式。请阅读我的代码以了解我的意思。
-
扩展方法定义为静态方法,但使用实例方法语法调用。它们的第一个参数指定方法操作的类型,参数前面是“this”修饰符。你必须指定一个类型
标签: c# arrays generics delegates