我有两种方法相当于此(原谅人为的例子):
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);
}
Run Code Online (Sandbox Code Playgroud)
(WithResource调用中还有一些逻辑,我试图将其分解出去.)
我得到Use of unassigned local variable编译时错误,因为断言是......使用未分配的变量.我现在通过null分别分配它们来避免这个问题.
初始化null并没有感觉不好,但我想避免把-1放在那里...我真的想告诉编译器"相信我,这将被初始化".因为它是一个测试,如果它是炸弹,我实际上并不太在乎,因为这只意味着我将不得不修复测试.
我很想问是否有办法给编译器提供这个提示,但感觉更加丑陋.是否存在这样的提示或者我应该像我现在正在做的那样初始化变量?
| 归档时间: |
|
| 查看次数: |
1430 次 |
| 最近记录: |