我正在编写一个使用指纹读取器的程序。我已经将指纹数据存储在数组[arr]中。不幸的是,仅读取第一个值,即[0]。因此,仅检测到一根手指,其余的手指将被忽略,但是如果我在数组中放置一个特定的数字,例如2。仅适用于该值:
这是我的代码:
XAML
答案 0 :(得分:3)
无论是否经过验证,您都可以无条件退出循环。
您的代码应显示为:
if (res.Verified) {
MessageBox.Show("Yes");
break; // success
}
这是一个很好的例子,为什么良好的编码实践建议即使在一行条件的情况下也要始终使用方括号,因为错误会更加明显。
类似地,你应该写
if (!res.Verified) {
Status = DPFP.Gui.EventHandlerStatus.Failure;
MessageBox.Show("No");
}
在代码段的结尾。
答案 1 :(得分:0)
感谢Dragonthoughts,我进行了以下更改,并且代码运行正常:
for (int x = 0; x < (arr.Length - 1); x++)
{
byte[] fpbyte = GetStringToBytes(arr[x]);
using (Stream stream = new MemoryStream(fpbyte))
{
Data.Templates[x] = new DPFP.Template(stream);
// Get template from storage.
if (Data.Templates[x] != null)
{
// Compare feature set with particular template.
ver.Verify(FeatureSet, Data.Templates[x], ref res);
Data.IsFeatureSetMatched = res.Verified;
Data.FalseAcceptRate = res.FARAchieved;
if (res.Verified)
{
status.Text = "Verified";
break; // success
}
}
}
}
if (!res.Verified)
{
Status = DPFP.Gui.EventHandlerStatus.Failure;
status.Text = "Unverified";
}
Data.Update();