只是想知道,如果有人这样想:
这是在TestInitialize中进行异步调用的错误设计,因为TestInitialize必须在任何TestMethod之前发生.
这可能是以任何方式进行异步TestInitialize的正确方法吗?
private int val = 0;
[TestInitialize]
public async Task TestMehod1()
{
var result = await LongRunningMethod();
val = 10;
}
[TestMethod]
public void TestMehod2()
{
Assert.AreEqual(10, val);
}
Run Code Online (Sandbox Code Playgroud)
任何想法?
string.Format具有以下方法签名
string.Format(format, params, .., .. , ..);
Run Code Online (Sandbox Code Playgroud)
我想每次传递自定义格式
string custFormat = "Hi {0} ... {n} "; // I only care about numbers here, and want avoid {abdb}
string name = "Foo";
string message = ProcessMessage(custFormat, name);
public string ProcessMessage(custFormat, name)
{
return string.Format(custFormat, name);
}
Run Code Online (Sandbox Code Playgroud)
我想在传递给ProcessMessage之前验证custFormat中的值以避免异常.
只是问问而已 :
为什么'withOffset'变量被推断为动态,因为Parse方法返回Struct?
dynamic str = "22/11/2013 10:31:45 +00:01";
var withOffset = DateTimeOffset.Parse(str);
Run Code Online (Sandbox Code Playgroud)
并在明确地将其退回到Struct之后?
dynamic str = "22/11/2013 10:31:45 +00:01";
var withOffset = DateTimeOffset.Parse((string)str);
Run Code Online (Sandbox Code Playgroud)
因为DateTimeOffset.Parse的返回类型是DateTimeOffset,并且编译器必须知道.记住这一点,它在运行时调用的任何方法,返回始终是DateTimeOffset.
规格说明
由于您的方法将dynamic作为参数,因此它符合"动态绑定"的条件
有点可疑.
有这样的规范有什么意义?或者在什么情况下DateTimeOffset.Parse不会返回STRUCT(暂时忘记DLR ..)?
编译器需要聪明,如果类中的所有方法/重载具有相同的返回类型以从长远来看获得性能优势.