不确定stackoverflow问题如何工作,但是我试图to带我以前的问题。
我已经摆脱了所有错误,并且dig不再为null,因为我实际上需要它具有一个值,并且我意识到早些时候在人们的帮助下,但现在我的函数没有被调用。
我想念什么?
在我的代码(public string dig = default;
)的早期定义了“挖土”
private void button1_Click(object sender, EventArgs e)
{
using (StreamWriter objWriter = new StreamWriter("C:\\temp\\Test.txt"))
{
int numpins = int.Parse(textBox1.Text);
string basepin = textBox2.Text;
int pinlength = basepin.Length;
string formatspecifier = "{0:d" + pinlength.ToString() + "}";
long pinnumber = long.Parse(basepin);
for (int d = 0; d < numpins; d++)
{
dig = basepin;
if (dig == null)
{
throw new Exception("null value not allowed");
}
else
{
GetCheckDigit(dig);
}
basepin = string.Format(formatspecifier, pinnumber);
objWriter.WriteLine(basepin);
pinnumber++;
}
objWriter.Close();
}
}
这是我的功能
private static string GetCheckDigit(string dig)
{
var sum = 0;
var result = true;
var digits = dig.ToCharArray();
for (int i = digits.Length - 1; i >= 0; i--)
{
var num = digits[i] - 48;
if (result)
{
num *= 2;
if (num > 9)
num -= 9;
}
sum += num;
result = !result;
}
if ((sum % 10) == 0)
{
return "0";
}
return (10 - (sum % 10)).ToString();
}
答案 0 :(得分:0)
除非numpins小于0或basepin为null,否则将调用GetCheckDigit(dig)
。
如果您的意思是它不向屏幕输出任何东西,那是因为
GetCheckDigit(dig)
不会在屏幕上输出任何内容,只会返回字符串。