при использовании следующего кода все они вызывают ошибку компиляции (.net 2):
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.этот [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, чтобы использовать эту перегрузку?