所以說我有一個方法,我已經超載。一個函數返回uint,一個函數返回int。Wierd含糊不清的函數重載函數調用
static void test1(Func<uint> f)
{
//things
}
static void test1(Func<int> f)
{
// also things
}
現在我嘗試調用它像這樣:
test1(Random.FunctionThatReturnsUints);
,但我在編譯的時候得到一個模棱兩可的呼叫錯誤:
Error 4 The call is ambiguous between the following methods or
properties: 'RNG_Comparison.Run.test1(System.Func<int>)' and 'RNG_Comparison.Run.test1
(System.Func<uint>)'
是什麼回事?是不是重載一個函數的重點,以便根據類型隱含地理解你指的是哪一個?我的意思是,如果我用一個返回BigInt的func來調用它,也許我可以看到編譯器的混淆,但是這個看起來非常乾淨。
有誰知道我爲什麼會出現這個錯誤?
嘗試'test1(new Func(Random.FunctionThatReturnsUints))',看看是否會導致不同的編譯器錯誤。 –
cdhowie
@cdhowie,這將解決編譯器錯誤。 – Habib
重載似乎沒問題,請發表更多代碼。 –