在if语句中将C#中的字符串与OR进行比较

时间:2012-07-01 16:33:32

标签: c# string

我是C#的新手,但似乎无法找到有关此问题的任何内容。这就是我想要做的事情:

string testString = txtBox1.Text;
string testString2 = txtBox2.Text;

if ((testString == "") || (testString2 == ""))
{
    MessageBox.Show("You must enter a value into both boxes");
    return;
} 

基本上我需要检查txtBox1或txtBox2是否为空。但是我在运行时遇到错误。这样做的正确方法是什么(或者我的方法是错的)?

6 个答案:

答案 0 :(得分:4)

由于您要检查文本框是否包含任何值,因此您的代码应该完成这项工作。您应该更具体地了解您所遇到的错误。你也可以这样做:

if(textBox1.Text == string.Empty || textBox2.Text == string.Empty)
   {
    MessageBox.Show("You must enter a value into both boxes");
   }

编辑2:基于@JonSkeet评论:

根据OP的原始未编辑帖子,不需要使用string.Compare。如果想要比较字符串,String.Equals应该完成工作,StringComparison可以用来忽略比较的情况。 string.Compare应该用于订单比较。 最初这个问题包含这个比较,

string testString = "This is a test";
string testString2 = "This is not a test";

if (testString == testString2)
{
    //do some stuff;
}

if语句可以替换为

if(testString.Equals(testString2))

或以下忽略大小写。

if(testString.Equals(testString2,StringComparison.InvariantCultureIgnoreCase)) 

答案 1 :(得分:3)

这是一种更有效的方法,它还会检查您的文本框是否只填充空白。

// When spaces are not allowed
if (string.IsNullOrWhiteSpace(txtBox1.Text) || string.IsNullOrWhiteSpace(txtBox2.Text))
  //...give error...

// When spaces are allowed
if (string.IsNullOrEmpty(txtBox1.Text) || string.IsNullOrEmpty(txtBox2.Text))
  //...give error...

@ Habib.OSU的编辑答案也很好,这只是另一种方法。

答案 2 :(得分:1)

尝试

if (testString.Equals(testString2)){
}

答案 3 :(得分:1)

提供的代码是正确的,我没有看到为什么它不起作用的任何理由。 您也可以按照建议尝试if (string1.Equals(string2))

要执行if (something OR something else),请使用||

if (condition_1 || condition_2) { ... }

答案 4 :(得分:0)

使用if (testString.Equals(testString2))

答案 5 :(得分:0)

尝试:

    caracter=malloc(sizeof(char));
    *caracter = /*(char*)*/(65 +rand()% 25);
    //sleep(1);
    elemento = caracter;

而不是:

    if (textBox1.Text == "" || textBox2.Text == "")
    {
        // do something..
    }

因为string.Empty不同于 - “”。