Evite el error "Uso de variable local no asignada"

Tengo dos métodos que son equivalentes a esto (perdón por el ejemplo):

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

(Hay algo más de lógica en la llamada WithResource que estoy tratando de descartar).

Me estoy poniendoUse of unassigned local variable Errores en tiempo de compilación porque las aserciones son ... usando variables no asignadas. Actualmente estoy evitando el problema asignándoles -1 ynull respectivamente.

Inicializando anull no se siente mal, pero me gustaría evitar poner el -1 ahí ... Realmente me gustaría decirle al compilador "confía en mí, esto se inicializará". Ya que es una prueba, en realidad no me importa mucho si bombardea, porque eso solo significa que tendré que arreglar la prueba.

Estoy tentado de preguntar si hay una manera de darle esa sugerencia al compilador, pero tengo la sensación de que es aún más feo. ¿Existe tal sugerencia o debería simplemente inicializar las variables como lo estoy haciendo ahora?

Respuestas a la pregunta(2)

Su respuesta a la pregunta