首先,首先,您当前的程序正在定义变量args
.你不需要这样做,因为你不能声明变量.将声明更改Main
为:
static void Main() { //... }
您可以使用某种形式的外部状态来存储通常存储在变量中的任何值,例如,始终将值读取/写入文件:
File.WriteAllText("line.txt", Console.ReadLine()); if (double.Parse(File.ReadAllText("line.txt")) < -2.0) Console.Write(2.0); if ((double.Parse(File.ReadAllText("line.txt")) < -1.0) && (double.Parse(File.ReadAllText("line.txt")) >= -2.0)) Console.Write(1.0); if ((double.Parse(File.ReadAllText("line.txt")) < 0.0) && (double.Parse(File.ReadAllText("line.txt")) >= -1)) Console.Write(0.0); if ((double.Parse(File.ReadAllText("line.txt")) >= 0.0) && (double.Parse(File.ReadAllText("line.txt")) < 1.0)) Console.Write(double.Parse(File.ReadAllText("line.txt"))); if (double.Parse(File.ReadAllText("line.txt")) >= 1.0) Console.Write(1.0); File.Delete("line.txt");
您可以使用注册表值,获取/发布值到Web服务等来执行相同的操作.当然,这些都是非常低效的,但它是一个玩具示例.
当然,除了效率超低之外,这看起来也很混乱.通过使用方法,我们实际上可以使这个看起来更好看.我们的方法不能有任何参数,因为参数是变量,但是返回解析行的无参数方法在这里确实具有可读性的奇迹:
public static void Main() { File.WriteAllText("line.txt", Console.ReadLine()); if (GetValue() < -2.0) Console.Write(2.0); if (GetValue() < -1.0 && GetValue() >= -2.0) Console.Write(1.0); if (GetValue() < 0.0 && GetValue() >= -1) Console.Write(0.0); if (GetValue() >= 0.0 && GetValue() < 1.0) Console.Write(GetValue()); if (GetValue() >= 1.0) Console.Write(1.0); File.Delete("line.txt"); } public static double GetValue() { return double.Parse(File.ReadAllText("line.txt")); }