使用以下代碼訪問,所有引起編譯錯誤(.NET 2):WebHeaderCollection,通過索引
var headers = new WebHeaderCollection();
var a = headers[0];
var b = headers[(int)0];
const int FIRST_HEADER = 0;
var c = headers[FIRST_HEADER];
所有失敗:呼叫是以下方法或屬性之間曖昧:「System.Net .WebHeaderCollection.this [System.Net.HttpRequestHeader]'和'System.Net.WebHeaderCollection.this [System.Net.HttpResponseHeader]'。
我可以在某種程度上理解爲什麼(a)會失敗,因爲重載接受HttpRequestHeader/HttpResponseHeader枚舉;但(b)和(c)隱式轉換爲int類型。
以下工作:
var headers = new WebHeaderCollection();
int index = 0;
var d = headers[index];
我只碰到這個編寫一些測試的時候來了,並在需要證明加入預期頭的能力(在我的情況會永遠只有一個!)
爲什麼我要聲明一個變量 int類型來使用這個重載?
我不認爲'var'關鍵字被引入到.NET 3.5之前。你已經將這個問題標記爲.net 2.0。 – 2012-01-17 14:12:00
@DavidHoerster:不錯,但是我相信問題是.net2框架/編譯器,而不是.net3/3.5帶來的增加。 – 2012-01-17 18:31:30