【问题标题】:Convert Stopwatch to int将秒表转换为 int
【发布时间】:2010-11-14 11:50:26
【问题描述】:

我有一点问题,我应该把我的秒表转换成 Int,

Stopwatch czasAlg = new Stopwatch();

czasAlg.Start(); //做一点事 czasAlg.Stop();

Int32 mojCzas = Convert.ToInt32(czasAlg); //我尝试转换,但它不起作用。

// Int32 mojCzas = Convert.ToInt32(czasAlg.ToString()); //它也不起作用。 有什么想法可以解决这个问题吗?

【问题讨论】:

  • 嗯.. 为什么你需要这样做?如果你被告知,那纯属恶作剧。

标签: c# int stopwatch


【解决方案1】:

Stopwatch 转换为Int32 绝对没有意义。要获取经过的时间,您可以使用 ElapsedMilliseconds 属性。所以通常的模式是:

Stopwatch watch = Stopwatch.StartNew();
// Do something you would like to measure
watch.Stop();
long totalMilliseconds = watch.ElapsedMilliseconds;
Console.WriteLine("The operation executed in {0} ms", totalMilliseconds);

【讨论】:

  • 我必须转换为 int 因为我必须除 czasAlg/n ,
  • 其中 n 是表中元素的数量
  • @Konrad,秒表是一个类(引用类型),而 Int32 是一个结构(值类型)。这两种类型之间的转换是绝对没有意义的。
  • 如果你想计算一些平均值,那么将经过的时间存储在一个整数数组中并计算平均值。如果您不想这样做,请说明您要做什么,并且请不要说我试图将秒表除以 n,因为这没有任何意义。
  • 当我写这个时: int mojCzas = czasAlg.ElapsedMilliseconds; “ElapsedMilliseconds”带有下划线
【解决方案2】:

把你的问题和 cmets 的部分放在一起,你似乎想要这个:

Stopwatch czasAlg = new Stopwatch();
czasAlg.Start(); 
//Do something 
czasAlg.Stop();
double timeInSecondsPerN=czasAlg.Elapsed.TotalSeconds/n;

【讨论】:

    【解决方案3】:

    czasAlg 是 Stopwatch 类型的对象。您将无法将其转换为 Int。查看 StopWatch 类的文档here

    StopWatch 类具有 Elapsed、ElapsedMilliseconds、ElapsedTicks 等属性。您可以根据需要获取这些属性的值。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-25
      • 2019-06-18
      • 2015-08-30
      • 1970-01-01
      相关资源
      最近更新 更多