当我返回字符串timeTaken时,它为null,它在IDE上说明了这一点,虽然它已在main方法中定义(TimeSpan timeTaken = timer.Elapsed;)
class Program
{
public static string timeTaken;
static void Main(string[] args)
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(firstline);
Stopwatch timer = new Stopwatch();
timer.Start();
using (var response = request.GetResponse());
timer.Stop();
TimeSpan timeTaken = timer.Elapsed;
...
}
}
如何输出timeTaken?
答案 0 :(得分:3)
您可以定义具有相同名称的本地变量
TimeSpan timeTaken
隐藏了您的静态类字段。
要输出timer.Elapsed的值,你可以这样写:
Console.WriteLine("{0}", timer.Elapsed);
答案 1 :(得分:0)
有两个timeTaken变量,一个是rthe Main函数的局部变量,另一个是类的静态成员。要显式引用字符串,请使用Program.timeTaken
。如果你重构代码以使用不同的名称,无论如何都会更好。
答案 2 :(得分:0)
你犯了一个简单的错误:在行static void Main(...)
内再次定义变量“timeTaken”
TimeSpan timeTaken = timer.Elapsed;
这将影响静态定义。要返回静态类字段,请使用
Program.timeTaken = ...
考虑命名(例如命名静态字段_timeTaken
或者只是使用
timeTaken = timer.Elapsed;
而不是
TimeSpan timeTaken = timer.Elapsed;
答案 3 :(得分:0)
你可能想要更像这样的东西: -
class Program
{
public static string timeTaken;
static void Main(string[] args)
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(firstline);
System.Diagnostics.Stopwatch timer = new Stopwatch();
timer.Start();
using (var response = request.GetResponse())
timer.Stop();
timeTaken = timer.Elapsed.ToString();
}
}