错误预期类,委托,枚举,接口或结构,我无法检测可以是什么的问题。
[编辑]代码添加注释:////code with error///
public class Class1
{
private CardType _cardTypes;
}
public bool IsValidCardType(string cardNumber)
{
// AMEX -- 34 or 37 -- 15 length
if ((Regex.IsMatch(cardNumber, "^(34|37)")) && ((_cardTypes & CardType.Amex) != 0))
return (15 == cardNumber.Length);
// MasterCard -- 51 through 55 -- 16 length
else if ((Regex.IsMatch(cardNumber, "^(51|52|53|54|55)")) && ((_cardTypes & CardType.MasterCard) != 0))
return (16 == cardNumber.Length);
// VISA -- 4 -- 13 and 16 length
else if ((Regex.IsMatch(cardNumber, "^(4)")) && ((_cardTypes & CardType.VISA) != 0))
return (13 == cardNumber.Length || 16 == cardNumber.Length);
// Diners Club -- 300-305, 36 or 38 -- 14 length
else if ((Regex.IsMatch(cardNumber, "^(300|301|302|303|304|305|36|38)")) && ((_cardTypes & CardType.DinersClub) != 0))
return (14 == cardNumber.Length);
// enRoute -- 2014,2149 -- 15 length
else if ((Regex.IsMatch(cardNumber, "^(2014|2149)")) && ((_cardTypes & CardType.DinersClub) != 0))
return (15 == cardNumber.Length);
// Discover -- 6011 -- 16 length
else if ((Regex.IsMatch(cardNumber, "^(6011)")) && ((_cardTypes & CardType.Discover) != 0))
return (16 == cardNumber.Length);
// JCB -- 3 -- 16 length
else if ((Regex.IsMatch(cardNumber, "^(3)")) && ((_cardTypes & CardType.JCB) != 0))
return (16 == cardNumber.Length);
// JCB -- 2131, 1800 -- 15 length
else if ((Regex.IsMatch(cardNumber, "^(2131|1800)")) && ((_cardTypes & CardType.JCB) != 0))
return (15 == cardNumber.Length);
else
{
// Card type wasn't recognised, provided Unknown is in the CardTypes property, then
// return true, otherwise return false.
if ((_cardTypes & CardType.Unknown) != 0)
return true;
else
return false;
}
}