Evite o erro "Uso de variáveis ​​locais não atribuídas"

Eu tenho dois métodos que são equivalentes a isto (perdoe o exemplo inventado):

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);
}

(Há mais alguma lógica na chamada WithResource que estou tentando calcular.)

Estou entendendoUse of unassigned local variable Erros de tempo de compilação porque as asserções são ... usando variáveis ​​não atribuídas. Atualmente estou evitando o problema atribuindo -1 enull respectivamente.

Inicializando paranull não me sinto mal, mas eu gostaria de evitar colocar o -1 lá ... Eu realmente gostaria de dizer ao compilador "confie em mim, isso será inicializado". Desde que é um teste, eu realmente não me importo muito se ele explode, porque isso significa apenas que eu terei que consertar o teste.

Estou tentado a perguntar se há uma maneira de dar essa dica ao compilador, mas tenho a sensação de que é ainda mais feio. Essa dica existe ou devo apenas inicializar as variáveis ​​como estou fazendo agora?

questionAnswers(3)

yourAnswerToTheQuestion