Избегайте ошибки «Использование неназначенной локальной переменной»

У меня есть два метода, которые эквивалентны этому (простите за надуманный пример):

public void WithResource(Action<Resource> action) {
    using (var resource = GetResource()) {
        action(resource);
    }
}

public void Test() {
    int id;
    SomeObject someObject;

    WithResource((resource) => {
        id = 1;
        someObject = SomeClass.SomeStaticMethod(resource);
    });

    Assert.IsNotNull(someObject);
    Assert.AreEqual(id, someObject.Id);
}

(Есть некоторая логика в вызове WithResource, который я пытаюсь выделить.)

Я получаюUse of unassigned local variable ошибки во время компиляции, потому что утверждения ... используют неназначенные переменные. Я в настоящее время избегаю проблемы, назначая им -1 иnull соответственно.

Инициализация вnull не плохо, но я бы хотел не добавлять туда -1 ... Я действительно хотел бы сказать компилятору: "Поверь мне, это станет инициализированным". Поскольку это тест, на самом деле меня не слишком волнует бомбардировка, потому что это означает, что мне придется исправить тест.

Я испытываю желание спросить, есть ли способ дать эту подсказку компилятору, но у меня есть ощущение, что это даже уродливее. Существует ли такая подсказка, или я должен просто инициализировать переменные, как я делаю сейчас?

Ответы на вопрос(3)

Ваш ответ на вопрос