相关疑难解决方法(0)

使用委托或lambda包装StopWatch计时?

我正在写这样的代码,做一些快速和肮脏的时间:

var sw = new Stopwatch();
sw.Start();
for (int i = 0; i < 1000; i++)
{
    b = DoStuff(s);
}
sw.Stop();
Console.WriteLine(sw.ElapsedMilliseconds);
Run Code Online (Sandbox Code Playgroud)

肯定有一个方法来调用此位的计时码作为花式schmancy .NET 3.0的λ,而不是(上帝保佑)剪切和粘贴了几次和更换DoStuff(s)DoSomethingElse(s)

我知道它可以作为一个Delegate但我想知道lambda方式.

.net c# lambda delegates

94
推荐指数
5
解决办法
2万
查看次数

如果(条件)继续; 或者if(!condition){...}?(风格偏好)

我知道这是一个风格问题,因此是主观标签.我有一小段代码,有两个嵌套条件.我可以用两种方式对它进行编码,我希望看到更有经验的开发人员认为它应该是什么样子.

风格1:

while (!String.IsNullOrEmpty(msg = reader.readMsg()))
{
    RaiseMessageReceived();
    if (parseMsg)
    {
        ParsedMsg parsedMsg = parser.parseMsg(msg);
        RaiseMessageParsed();
        if (processMsg)
        {
            process(parsedMsg);
            RaiseMessageProcessed();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

风格2:

while (!String.IsNullOrEmpty(msg = reader.readMsg()))
{
    RaiseMessageReceived();
    if (!parseMsg) continue;

    ParsedMsg parsedMsg = parser.parseMsg(msg);
    RaiseMessageParsed();
    if (!processMsg) continue;

    process(parsedMsg);
    RaiseMessageProcessed();
}
Run Code Online (Sandbox Code Playgroud)

(附带问题:如何在源代码示例中放置空行?)

coding-style

5
推荐指数
4
解决办法
2712
查看次数

标签 统计

.net ×1

c# ×1

coding-style ×1

delegates ×1

lambda ×1