使用"new()和".StartNew()"创建新实例有什么区别?

Gen*_*нин 7 .net c# system.diagnostics stopwatch

来自我的"回答"问题"任务中的秒表似乎是所有任务中的附加物,想要测量任务间隔"

创建新的秒表实例之间可能存在以下区别:

Stopwatch timer = System.Diagnostics.Stopwatch.StartNew();
Run Code Online (Sandbox Code Playgroud)

Stopwatch timer = new Stopwatch();
timer.Start();  
Run Code Online (Sandbox Code Playgroud)

隐含的子问题:
为什么StartNew()提供方法?

Hab*_*bib 9

StartNew,创建秒表的新实例并启动它.

简单来说new就是秒表实例化.它不会启动秒表.

对于您创建新实例和调用的当前代码Start,应该没有任何区别Stopwatch.StartNew()

请参阅Stopwatch.StartNew() - MSDN

此方法等效于调用​​Stopwatch构造函数,然后在新实例上调用Start.

StartNew 提供了一种更简单的方法来一步创建和启动秒表.


Ree*_*sey 5

为什么提供StartNew()方法?

这是一个更简单的选择. StartNew实际上与分配新的秒表并立即启动它是一样的.

由于这是一个非常常见的用例,因此StartNew工厂方法只是简化和缩短了API,并减少了使用秒表所需的代码.