所以我有一些代码以 do while 循环为中心。
string token;
var count = 0;
var checkDataLength= data.Length == 16;
do
{
count = 0;
token = GenerateToken(data, start, end);
if (checkDataLength)
{
if (Mod120Check(token))
{
count += 1;
}
}
if (IsCompliant(token))
{
count += 1;
}
}
while (count > 0);
return token;
基本上,我正在生成一个 token ,要使此 token 有效,必须使 Mod120Check 和 IsCompliant 检查失败。我无法更改这些方法返回数据的方式。
虽然上面的代码有效,但我觉得它很丑,我想知道是否有人有更好的方法?
谢谢
最佳答案
试试这个:
do
{
token = GenerateToken(data, start, end);
}
while (checkDataLength && Mod120Check(token) || IsCompliant(token))
只需将您的条件移动到while
。
(!) 请注意,IsCompliant(token)
仅在 checkDataLength && Mod120Check(token)
状态为 false< 时才会被调用
。它不应造成任何附带影响,但它可能会造成影响,具体取决于您的 IsCompliant
方法的作用。
关于c# - 寻找更优雅的 DO WHILE 解决方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51410408/