我有两种等效的方法(请原谅人为的示例):
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
编译时错误,因为断言是......使用未分配的变量。我目前通过null
分别分配-1 和 来避免这个问题。
初始化到null
感觉不错,但我想避免将 -1 放在那里......我真的很想告诉编译器“相信我,这将被初始化”。既然是测试,我其实不太在意它是否会爆炸,因为那只意味着我必须修复测试。
我很想问是否有办法向编译器提供该提示,但感觉更难看。是否存在这样的提示,或者我应该像现在这样初始化变量吗?