尝试编写一段代码来比较两个字符串。如果其中任何一个等于文本框,则会打开一个新的winform。我知道如何做winform部分。
string CreditCard1 = "Some numbers";
string CreditCard2 = "Some Numbers";
string RFIDCard1 = "E00700000330E44C";
string RFIDCard2 = "E00700000338E539";
if(CardScan_txtBx = CreditCard1 || RFIDCard1)`
我从MSVS 2010收到错误说:
运营商'||'不能应用于'string'和'string'
类型的操作数有办法做我想做的事吗?
答案 0 :(得分:6)
这条线是罪魁祸首:
if(CardScan_txtBx = CreditCard1 || RFIDCard1)`
尝试:
if(CardScan_txtBx.Text == CreditCard1 || CardScan_txtBx.Text == RFIDCard1)
另一方面,它让我感到害怕,你显然是在处理信用卡信息,但不知道如何比较文本框中的值。我真的,非常希望,为了您的客户,您计划调查如何安全地管理这些信息。
答案 1 :(得分:4)
这里有三个问题:
||
)与多个值进行比较。这是一个令人惊讶的常见误解,但对编译器没有任何意义。==
完成的。 =
用于转让。TextBox
不是string
;您需要使用其Text
属性来获取或设置其包含的文本。最后,您的if
语句应如下所示:
if(CardScan_txtBx.Text == CreditCard1 || CardScan_txtBx.Text == RFIDCard1) {
// ...
}
答案 2 :(得分:1)
试试这个:
if (CardScan_txtBx.Text == CreditCard1 || CardScan_txtBx.Text == RFIDCard1)
答案 3 :(得分:1)
好的,你在这里有2个问题,首先是单个equals是赋值而不是比较,其次每个参数用a分隔或者需要是bool,即应该是
if(CardScan_txtBx == CreditCard1 ||CardScan_txtBx == RFIDCard1)
答案 4 :(得分:1)
您可以使用else if
吗?
if(CardScan_txtBx == CreditCard1)
{
//Do something
} else if(CardScan_txtBx == RFIDCard1)
{
//Do something
}
答案 5 :(得分:1)
答案 6 :(得分:1)
其他答案的代码正确,以下是对原因的解释。当你使用||时运算符,它期望任何一方的表达式都是评估为bool(true或false)的东西。当您编写CardScan_txtBx.Text == CreditCard1 || RFIDCard1
时,您的语句会在左侧评估为bool,CardScan_txtBx.Text == CreditCard1
并且您有一个语句,其值为RFIDCard1
,因为字符串不是bool,你得到编译时错误。这就是为什么你必须在右边重复==运算符,以便你说CardScan_txtBx.Text == RFIDCard1
答案 7 :(得分:1)
尝试使用以下代码.....
if (CardScan_txtBx.Equals(CreditCard1) || CardScan_txtBx.Equals(RFIDCard1))
{
//Code
}
答案 8 :(得分:0)
您也可以使用列表。
List<string> listOfValidStrings = new List<string>();
//Initialise all valid strings.
if(listOfValidStrings.contains(txtbox.text())
{ do something.}