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

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

public void WithResource(Action 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 Iя пытаюсь выделить.) Я

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

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

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

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

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