C# - 如何获取用户在 TextBox 中定义的 long 类型变量并将其用于数学运算

C# - How to get a long type variable defined by user in a TextBox and use it in a mathematical operation

我需要将程序的文本字段视为 LONG 类型变量并在数学运算中进行处理。用户每次都需要指定此变量的值,我希望程序不将该值视为整数,而是将其视为 long。

我已经将其他字段视为整数,它们可以很好地处理这种代码:

HourField.IntValue

现在请注意 .IntValue ,它显然告诉程序要获取 HourField 中的任何内容并将其视为整数。 但不幸的是,如果我尝试编写 .LongValue,实际上没有 long 类型的等价物,C# 只是不识别这个函数....还有其他类似的函数,如 .FloatValue 或 .DoubleValue 等,但没有这样的函数.LongValue 之类的东西。 但是我什至尝试使用这种语法:

Convert.ToInt64(FileSizeBytesField);

或类似的东西,理论上编译器不会给我任何编译错误等。但是如果我尝试通过按下按钮实际进行计算,程序崩溃并且 Visual Studio 告诉我铸造类型无效。 请请帮我解决这个问题。这是我真正完成程序所需要做的最后一件事!!!

P.s。我发布了一些我得到的和我的源代码的截图。谢谢

program's source code

Debugging error in Visual Studio after program crash

您可以使用 Parse,将字符串值转换为 long

long l = long.Parse("453216");

如果你想确保你输入的是一个有效的数字,你可以使用tryParse

if (long.TryParse("45263572", out l) == true)
{
  // use long value
}
else 
{ 
  // input is not a valid long value... handle the situation here
}

我猜想您要从中获取值的 FileSizeBytesFieldNSTextField 的实例或 NSControl 的另一个子类。 In that case,您可以使用 IntValueStringValue 等属性获取控件的值。因此,要将值转换为 long 类型,请尝试以下操作:

Convert.ToInt64(FileSizeBytesField.StringValue)

或者,使用 已经建议的更常见的方法:

long fileSizeBytes;
if (long.TryParse(FileSizeBytesField.StringValue, out fileSizeBytes))
{
  // use fileSizeBytes
}