-1
的問題很簡單:如何使它儘可能簡單調用的代碼?我的代碼有點愚蠢,但我看不到。做一個函數調用反擊
using System;
namespace ConsoleApplication48
{
class FunctionWithCounter<T, TResult>
{
private readonly Func<T, TResult> function;
public int Calls { get; private set; }
private FunctionWithCounter(Func<T, TResult> function)
{
Calls = 0;
this.function = function;
}
public static implicit operator FunctionWithCounter<T, TResult>(Func<T, TResult> func)
{
return new FunctionWithCounter<T, TResult>(func);
}
public TResult this[T arg]
{
get
{
Calls++;
return function(arg);
}
}
}
class Program
{
static void Main()
{
FunctionWithCounter<double, double> func = (Func<double, double>)(x => x*x);
for (int i = 0; i < 5; i++)
{
double d = func[i];
}
Console.WriteLine(func.Calls);
Console.ReadKey();
}
}
}
所以我使用索引這樣FUNC代替FUNC [X](x)的調用,並有一些difficultes(不能打電話像一個空洞的方法)。但我認爲這很簡單。任何優惠?
那麼具體的錯誤是什麼,它發生在哪裏? – 2013-02-27 20:23:11
你真的想達到什麼目的?目前尚不清楚。 – 2013-02-27 20:23:55
@JonSkeet它看起來像他試圖計數的時候,他援引他的財產 – 2013-02-27 20:24:23