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?