Return 来自专用 TryParse 方法 c# 的值
Return value from dedicated TryParse Method c#
我似乎无法在网上的任何地方找到我的问题的答案。
我正在尝试在单独的 class 中编写一个 Int.TryParse
方法,只要用户进行输入就可以调用它。所以不是每次有输入时都写这个:
int z;
int.TryParse(Console.writeLine(), out z);
我正在努力做到这一点(从 main 方法)
int z;
Console.WriteLine("What alternative?");
Try.Input(Console.ReadLine(), z); // sends the input to my TryParse method
tryparse 方法
class Try
{
public static void Input(string s, int parsed)
{
bool Converted = int.TryParse(s, out parsed);
if (Converted) // Converted = true
{
return;
}
else //converted = false
{
Console.Clear();
Console.WriteLine("\n{0}: Is not a number.\n\nPress ENTER to return", s);
Console.ReadLine();
return;
}
}
}
}
为什么我的 Variabel "z" 得到的是 "parsed" 的值,而程序 return 的值?
为了将 parsed
值传递给调用方法,您需要 return
或将其作为 out
参数使用,例如 int.TryParse()
确实如此。
返回值是最直接的方式,但并不能提供解析是否成功的方法。但是,如果将 return 类型更改为 Nullable<int>
(也称为 int?
),则可以使用空 return 值来指示失败。
public static int? Input(string s)
{
int parsed;
bool Converted = int.TryParse(s, out parsed);
if (Converted) // Converted = true
{
return null;
}
else //converted = false
{
Console.Clear();
Console.WriteLine("\n{0}: Is not a number.\n\nPress ENTER to return", s);
Console.ReadLine();
return parsed;
}
}
Console.WriteLine("What alternative?");
int? result = Try.Input(Console.ReadLine());
if(result == null)
{
return;
}
// otherwise, do something with result.Value
使用 out
参数将镜像 int.TryParse()
方法签名:
public static bool Input(string s, out int parsed)
{
bool Converted = int.TryParse(s, out parsed);
if (Converted) // Converted = true
{
return false;
}
else //converted = false
{
Console.Clear();
Console.WriteLine("\n{0}: Is not a number.\n\nPress ENTER to return", s);
Console.ReadLine();
return true;
}
}
Console.WriteLine("What alternative?");
int z;
if(!Try.Input(Console.ReadLine(), out z))
{
return;
}
// otherwise, do something with z
我似乎无法在网上的任何地方找到我的问题的答案。
我正在尝试在单独的 class 中编写一个 Int.TryParse
方法,只要用户进行输入就可以调用它。所以不是每次有输入时都写这个:
int z;
int.TryParse(Console.writeLine(), out z);
我正在努力做到这一点(从 main 方法)
int z;
Console.WriteLine("What alternative?");
Try.Input(Console.ReadLine(), z); // sends the input to my TryParse method
tryparse 方法
class Try
{
public static void Input(string s, int parsed)
{
bool Converted = int.TryParse(s, out parsed);
if (Converted) // Converted = true
{
return;
}
else //converted = false
{
Console.Clear();
Console.WriteLine("\n{0}: Is not a number.\n\nPress ENTER to return", s);
Console.ReadLine();
return;
}
}
}
}
为什么我的 Variabel "z" 得到的是 "parsed" 的值,而程序 return 的值?
为了将 parsed
值传递给调用方法,您需要 return
或将其作为 out
参数使用,例如 int.TryParse()
确实如此。
返回值是最直接的方式,但并不能提供解析是否成功的方法。但是,如果将 return 类型更改为 Nullable<int>
(也称为 int?
),则可以使用空 return 值来指示失败。
public static int? Input(string s)
{
int parsed;
bool Converted = int.TryParse(s, out parsed);
if (Converted) // Converted = true
{
return null;
}
else //converted = false
{
Console.Clear();
Console.WriteLine("\n{0}: Is not a number.\n\nPress ENTER to return", s);
Console.ReadLine();
return parsed;
}
}
Console.WriteLine("What alternative?");
int? result = Try.Input(Console.ReadLine());
if(result == null)
{
return;
}
// otherwise, do something with result.Value
使用 out
参数将镜像 int.TryParse()
方法签名:
public static bool Input(string s, out int parsed)
{
bool Converted = int.TryParse(s, out parsed);
if (Converted) // Converted = true
{
return false;
}
else //converted = false
{
Console.Clear();
Console.WriteLine("\n{0}: Is not a number.\n\nPress ENTER to return", s);
Console.ReadLine();
return true;
}
}
Console.WriteLine("What alternative?");
int z;
if(!Try.Input(Console.ReadLine(), out z))
{
return;
}
// otherwise, do something with z