小编cod*_*ter的帖子

MSTEST - 异步Testinitialize保证测试失败

只是想知道,如果有人这样想:

这是在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)

任何想法?

.net c# tdd unit-testing asynchronous

13
推荐指数
4
解决办法
5529
查看次数

如何验证string.Format方法的格式

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中的值以避免异常.

c# string.format

9
推荐指数
1
解决办法
1万
查看次数

C#DLR,使用Dynamic关键字进行数据类型推断

只是问问而已 :

为什么'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 ..)?

编译器需要聪明,如果类中的所有方法/重载具有相同的返回类型以从长远来看获得性能优势.

.net c# dynamic-language-runtime

5
推荐指数
1
解决办法
570
查看次数