У меня была такая же проблема с объявленной переменной с именем Окончание года.
Объявлено здесь:
public ChartData(MetricInfo metricInfo, MetricItem[] metricItems) : this()
{
int endingYear = 0;
Далее в методе это не было проблемой:
endingYear = endingDate.Year;
Но когда я ссылался на тот же самый varable в операторе Case, я получал ошибку «Не могу использовать локальную переменную до ее объявления», даже если переменная была в intelesense:
case "QRTR_LAST_FULL_QRTR":
if (metricInfo.CalendarType == "CALENDAR")
{
switch (endingDate.Month)
{
case 1:
case 2:
case 3:
loopControl = 4;
endingYear = endingDate.Year - 1;
На основании результатов Мэтта я попытался изменить имя переменной на endYear, и проблема исчезла. Очень странно и трата на полчаса или около того. Если бы не эта тема сообщений, это, вероятно, было бы большей потерей времени.