Оператор && не может применятся к операндам типа "string" и "string" - C#
Формулировка задачи:
Доброго времени суток...
Решил сделать в программке (домашнем задании) не большое "Пасхальное Яйцо"
вообщем то имеем три текст бокса.
имеем проверку их заполнения, но они должны заполняться только 1 или 0
так же есть еще допустимый вариант когда в текст бокс 1 стоит символ Х в текст бокс 2 стоит символ У в текст бокс 3 стоит Z , в других вариация вводить символы нельзя, иначе выйдет сообщение с предупреждением
ну и собственно реализован алгоритм действий если в текст боксы введены символы удовлетворяющие условию описаному выше...
так вот , когда введен 1 или 0 во все боксы, все работает норма,
Но проблемы, с буквами...
вообщем мне нужно взять символ из текст бокса и сравнить его с другим символм, если они совпадают то выдать определенное текстовое предупреждение. все что мне удалось реализовать это только то что программа не ругается на то что введены символы Икс, Игрик и Z ,и начинает работать дальше, но естественно выпадает в ступор не найдя 1 или 0 , так как мне ни как не получается сравнить сивол из текст бокса с моими...
привожу кусок кода
if (((textBox1.Text == "0") && (textBox2.Text == "0") && (textBox3.Text == "0")) || // проверяем на заполнение текст бокс 1 и текст бокс 2 и текст бокс 3, либо 1 либо 0
((textBox1.Text == "0") && (textBox2.Text == "0") && (textBox3.Text == "1")) ||
((textBox1.Text == "0") && (textBox2.Text == "1") && (textBox3.Text == "1")) ||
((textBox1.Text == "1") && (textBox2.Text == "1") && (textBox3.Text == "1")) ||
((textBox1.Text == "1") && (textBox2.Text == "1") && (textBox3.Text == "0")) ||
((textBox1.Text == "1") && (textBox2.Text == "0") && (textBox3.Text == "0")) ||
((textBox1.Text == "1") && (textBox2.Text == "0") && (textBox3.Text == "1")) ||
((textBox1.Text == "0") && (textBox2.Text == "1") && (textBox3.Text == "0")) ||
((textBox1.Text == "X") && (textBox2.Text == "Y") && (textBox3.Text == "Z")))
{
// задаем условие по которому должен получится ответ
if (Convert.ToInt32(textBox1.Text) == 1 && Convert.ToInt32(textBox2.Text) == 1
&& Convert.ToInt32(textBox3.Text) == 1) // если ТБ1=1 ТБ2=1 ТБ3=1 то Ответ 1
{ label1.Text = "Ответ : 1"; }
else if (Convert.ToInt32(textBox1.Text) == 0 && Convert.ToInt32(textBox2.Text) == 0
&& Convert.ToInt32(textBox3.Text) == 0) // если ТБ1=0 ТБ2=0 ТБ3=0 то Ответ 0
{ label1.Text = "Ответ : 0"; }
else if (Convert.ToInt32(textBox1.Text) == 1 && Convert.ToInt32(textBox2.Text) == 0
&& Convert.ToInt32(textBox3.Text) == 0) // если ТБ1=1 ТБ2=0 ТБ3=0 то Ответ 1
{ label1.Text = "Ответ : 1"; }
else if (Convert.ToInt32(textBox1.Text) == 0 && Convert.ToInt32(textBox2.Text) == 1
&& Convert.ToInt32(textBox3.Text) == 0) // если ТБ1=0 ТБ2=1 ТБ3=0 то Ответ 1
{ label1.Text = "Ответ : 1"; }
else if (Convert.ToInt32(textBox1.Text) == 1 && Convert.ToInt32(textBox2.Text) == 1
&& Convert.ToInt32(textBox3.Text) == 0) // если ТБ1=1 ТБ2=1 ТБ3=0 то Ответ 0
{ label1.Text = "Ответ : 0"; }
else if (Convert.ToInt32(textBox1.Text) == 0 && Convert.ToInt32(textBox2.Text) == 0
&& Convert.ToInt32(textBox3.Text) == 1) // если ТБ1=0 ТБ2=0 ТБ3=1 то Ответ 1
{ label1.Text = "Ответ : 1"; }
else if (Convert.ToInt32(textBox1.Text) == 1 && Convert.ToInt32(textBox2.Text) == 0
&& Convert.ToInt32(textBox3.Text) == 1) // если ТБ1=1 ТБ2=0 ТБ3=1 то Ответ 0
{ label1.Text = "Ответ : 0"; }
else if (Convert.ToInt32(textBox1.Text) == 0 && Convert.ToInt32(textBox2.Text) == 1
&& Convert.ToInt32(textBox3.Text) == 1) // если ТБ1=0 ТБ2=1 ТБ3=1 то Ответ 1
{ label1.Text = "Ответ : 0"; };
}
else // если в текст бокс 1 и текст бокс 2 введены не символы 1 или 0 тогда
{ MessageBox.Show("Введите 0 или 1"); } // вывести сообщение "Введите 0 или 1"
break; // остановка
как только начинаю играться по подобию уже написаного , программа меня осаживает и постоянно тыкает носом в то что я не могу так делать, потому что это тип стринг...а как тогда сделать?
Решение задачи: «Оператор && не может применятся к операндам типа "string" и "string"»
textual
Листинг программы
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
int operacia; // это номер операции
public Form1() // первоначальная инициализация при запуске
{
InitializeComponent(); // инициализация компонентов
textBox1.Visible = false; // делаем невидимым текст бокс1
textBox2.Visible = false; // делаем невидимым текст бокс2
textBox3.Visible = false; // делаем невидимым текст бокс3
label1.Text = ""; // делаем невидимым лейбл1
label3.Text = ""; // делаем невидимым лейбл3
label4.Text = ""; // делаем невидимым лейбл4
label5.Text = ""; // делаем невидимым лейбл5
}
private void radioButton1_CheckedChanged_1(object sender, EventArgs e)
// нажатие на радио кнопку 1 "Отрицание ( НЕ )"
{
textBox1.Visible = true; // показываем текст бокс1
textBox2.Visible = false; // скрываем текст бокс2
textBox3.Visible = false; // скрываем текст бокс3
label3.Text = "Введите 1 опреанду"; // выводим информационный лейбл вместе с текст боксом1
label4.Text = ""; // делаем невидимым лейбл4
label5.Text = ""; // делаем невидимым лейбл5
operacia = 1; // это номер операции привязанной к радио кнопке 1 "Отрицание ( НЕ )"
}
private void radioButton2_CheckedChanged_1(object sender, EventArgs e)
// нажатие на радио кнопку 2 "Коньюкция ( ИЛИ )"
{
textBox1.Visible = true; // показываем текст бокс1
textBox2.Visible = true; // показываем текст бокс2
textBox3.Visible = false; // скрываем текст бокс3
label3.Text = "Введите 1 опреанду"; // выводим информационный лейбл вместе с текст боксом1
label4.Text = "Введите 2 опреанду"; // выводим информационный лейбл вместе с текст боксом2
operacia = 2; // это номер операции привязанной к радио кнопке 2 "Коньюкция ( ИЛИ )"
}
private void radioButton3_CheckedChanged_1(object sender, EventArgs e)
// нажатие на радио кнопку 3 "Дизьюкция ( И )"
{
textBox1.Visible = true; // показываем текст бокс1
textBox2.Visible = true; // показываем текст бокс2
textBox3.Visible = false; // скрываем невидимым текст бокс3
label3.Text = "Введите 1 опреанду"; // выводим информационный лейбл вместе с текст боксом1
label4.Text = "Введите 2 опреанду"; // выводим информационный лейбл вместе с текст боксом2
operacia = 3; // это номер операции привязанной к радио кнопке 3 "Дизьюкция ( И )"
}
private void radioButton4_CheckedChanged_1(object sender, EventArgs e)
// нажатие на радио кнопку 4 "Cложение по модулю два (^)"
{
textBox1.Visible = true; // показываем текст бокс1
textBox2.Visible = true; // показываем текст бокс2
textBox3.Visible = true; // показываем текст бокс3
label3.Text = "Введите 1 опреанду"; // выводим информационный лейбл вместе с текст боксом1
label4.Text = "Введите 2 опреанду"; // выводим информационный лейбл вместе с текст боксом2
label5.Text = "Введите 3 опреанду"; // выводим информационный лейбл вместе с текст боксом3
operacia = 4; // это номер операции привязанной к радио кнопке 4 "Cложение по модулю два (^)"
}
private void button1_Click_1(object sender, EventArgs e) // нажатие на кнопку "решение"
{
switch (operacia) // делим операции на кейсы в зависимости от выбраной радио кнопки
{
case 1: // кейс радио кнопки 1 "Отрицание ( НЕ )"
if ((textBox1.Text == "0") || (textBox1.Text == "1")) // проверяем на заполнение текст бокс 1, либо 1 либо 0
{ // если введена либо 1 либо 0
if (Convert.ToInt32(textBox1.Text) == 1) // тогда если введена 1 вывести лейбл 1 с текстом 1
{ label1.Text = "Ответ : 0"; };
if (Convert.ToInt32(textBox1.Text) == 0) // тогда если введена 0 вывести лейбл 1 с текстом 0
{ label1.Text = "Ответ : 1"; };
}
else // если в текст бокс 1 введен не символ 1 или 0 тогда
{MessageBox.Show("Введите 0 или 1");} // вывести сообщение "Введите 0 или 1"
break; // остановка
case 2: // кейс радио кнопки 2 "Коньюкция ( ИЛИ )"
if ((textBox1.Text == "0") && (textBox2.Text == "0") || // проверяем на заполнение текст бокс 1 и текст бокс 2, либо 1 либо 0
(textBox1.Text == "0") && (textBox2.Text == "1") ||
(textBox1.Text == "1") && (textBox2.Text == "1") ||
(textBox1.Text == "1") && (textBox2.Text == "0"))
{ // если введена либо 1 либо 0
if (Convert.ToInt32(textBox1.Text) == 1 ||
Convert.ToInt32(textBox2.Text) == 1) // тогда если введена 1 ИЛИ 1 вывести лейбл 1 с текстом 1
{ label1.Text = "Ответ : 1"; }
else // иначе вывести лейбл 1 с текстом 0
{ label1.Text = "Ответ : 0"; };
}
else // если в текст бокс 1 и текст бокс 2 введены не символы 1 или 0 тогда
{ MessageBox.Show("Введите 0 или 1"); } // вывести сообщение "Введите 0 или 1"
break; // остановка
case 3: // кейс радио кнопки 3 "Дизьюкция ( И )"
if ((textBox1.Text == "0") && (textBox2.Text == "0") || // проверяем на заполнение текст бокс 1 и текст бокс 2, либо 1 либо 0
(textBox1.Text == "0") && (textBox2.Text == "1") ||
(textBox1.Text == "1") && (textBox2.Text == "1") ||
(textBox1.Text == "1") && (textBox2.Text == "0"))
{ // если введена либо 1 либо 0
if (Convert.ToInt32(textBox1.Text) == 1 &&
Convert.ToInt32(textBox2.Text) == 1) // тогда если введена 1 И 1 вывести лейбл 1 с текстом 1
{ label1.Text = "Ответ : 1"; }
else // иначе вывести лейбл 1 с текстом 0
{ label1.Text = "Ответ : 0"; };
}
else // если в текст бокс 1 и текст бокс 2 введены не символы 1 или 0 тогда
{ MessageBox.Show("Введите 0 или 1"); } // вывести сообщение "Введите 0 или 1"
break; // остановка
case 4: // кейс радио кнопки 4 Cложение по модулю два (^)
if (((textBox1.Text == "0") && (textBox2.Text == "0") && (textBox3.Text == "0")) || // проверяем на заполнение текст бокс 1 и текст бокс 2 и текст бокс 3, либо 1 либо 0
((textBox1.Text == "0") && (textBox2.Text == "0") && (textBox3.Text == "1")) ||
((textBox1.Text == "0") && (textBox2.Text == "1") && (textBox3.Text == "1")) ||
((textBox1.Text == "1") && (textBox2.Text == "1") && (textBox3.Text == "1")) ||
((textBox1.Text == "1") && (textBox2.Text == "1") && (textBox3.Text == "0")) ||
((textBox1.Text == "1") && (textBox2.Text == "0") && (textBox3.Text == "0")) ||
((textBox1.Text == "1") && (textBox2.Text == "0") && (textBox3.Text == "1")) ||
((textBox1.Text == "0") && (textBox2.Text == "1") && (textBox3.Text == "0")) ||
((textBox1.Text == "Х") && (textBox2.Text == "У") && (textBox3.Text == "Z")) ||
((textBox1.Text == "X") && (textBox2.Text == "У") && (textBox3.Text == "Z")) ||
((textBox1.Text == "X") && (textBox2.Text == "Y") && (textBox3.Text == "Z")) ||
((textBox1.Text == "Х") && (textBox2.Text == "Y") && (textBox3.Text == "Z")))
{
// задаем условие по которому должен получится ответ
if (textBox1.Text == "Х" && textBox2.Text == "х" && textBox2.Text == "X" && textBox2.Text == "x"
&& textBox2.Text == "У" && textBox2.Text == "у" && textBox2.Text == "Y" && textBox2.Text == "y"
&& textBox3.Text == "Z")
{ MessageBox.Show("Пасхальное яйцо найдено!!!"); }
else if (Convert.ToInt32(textBox1.Text) == 1 && Convert.ToInt32(textBox2.Text) == 1
&& Convert.ToInt32(textBox3.Text) == 1) // если ТБ1=1 ТБ2=1 ТБ3=1 то Ответ 1
{ label1.Text = "Ответ : 1"; }
else if (Convert.ToInt32(textBox1.Text) == 0 && Convert.ToInt32(textBox2.Text) == 0
&& Convert.ToInt32(textBox3.Text) == 0) // если ТБ1=0 ТБ2=0 ТБ3=0 то Ответ 0
{ label1.Text = "Ответ : 0"; }
else if (Convert.ToInt32(textBox1.Text) == 1 && Convert.ToInt32(textBox2.Text) == 0
&& Convert.ToInt32(textBox3.Text) == 0) // если ТБ1=1 ТБ2=0 ТБ3=0 то Ответ 1
{ label1.Text = "Ответ : 1"; }
else if (Convert.ToInt32(textBox1.Text) == 0 && Convert.ToInt32(textBox2.Text) == 1
&& Convert.ToInt32(textBox3.Text) == 0) // если ТБ1=0 ТБ2=1 ТБ3=0 то Ответ 1
{ label1.Text = "Ответ : 1"; }
else if (Convert.ToInt32(textBox1.Text) == 1 && Convert.ToInt32(textBox2.Text) == 1
&& Convert.ToInt32(textBox3.Text) == 0) // если ТБ1=1 ТБ2=1 ТБ3=0 то Ответ 0
{ label1.Text = "Ответ : 0"; }
else if (Convert.ToInt32(textBox1.Text) == 0 && Convert.ToInt32(textBox2.Text) == 0
&& Convert.ToInt32(textBox3.Text) == 1) // если ТБ1=0 ТБ2=0 ТБ3=1 то Ответ 1
{ label1.Text = "Ответ : 1"; }
else if (Convert.ToInt32(textBox1.Text) == 1 && Convert.ToInt32(textBox2.Text) == 0
&& Convert.ToInt32(textBox3.Text) == 1) // если ТБ1=1 ТБ2=0 ТБ3=1 то Ответ 0
{ label1.Text = "Ответ : 0"; }
else if (Convert.ToInt32(textBox1.Text) == 0 && Convert.ToInt32(textBox2.Text) == 1
&& Convert.ToInt32(textBox3.Text) == 1) // если ТБ1=0 ТБ2=1 ТБ3=1 то Ответ 1
{ label1.Text = "Ответ : 0"; };
}
else // если в текст бокс 1 и текст бокс 2 введены не символы 1 или 0 тогда
{ MessageBox.Show("Введите 0 или 1"); } // вывести сообщение "Введите 0 или 1"
break; // остановка
}
}
}
}