Математические операции с данными из буфера обмена - C#
Формулировка задачи:
Здравствуйте Уважаемые програмисты!
Понадобилась программа которая бы при копирывании выражения , например 2+2 3-1, находила сумму или разницу.Подскажите что не так со скриптом. Выполняет только первый иф, пробовал менять местами всё равно только первое условие. Буду благодарен за исправления и по возможности обьяснения.
private void button1_Click(object sender, EventArgs e)
{
IDataObject iData = Clipboard.GetDataObject();
string str = (String)iData.GetData(DataFormats.Text);
string begin = str.Substring(0, 1);
string midl = str.Substring(1, 1);
string end = str.Substring(2, 1);
int a, b, res;
a = int.Parse(begin);
b = int.Parse(end);
int length = str.Length;
if (length > 2)
{
if (midl == "-")
{
res = a - b;
Clipboard.SetDataObject(Convert.ToString(res));
}
else if (midl == "+")
{
res = a + b;
Clipboard.SetDataObject(Convert.ToSingle(res));
}Решение задачи: «Математические операции с данными из буфера обмена»
textual
Листинг программы
private void button1_Click(object sender, EventArgs e)
{
IDataObject iData = Clipboard.GetDataObject();
string str = (String)iData.GetData(DataFormats.Text);
string[] split = str.Split(new char[]{'+','-'},StringSplitOptions.RemoveEmptyEntries);
int a = int.Parse(split[0]);
int b = int.Parse(split[1]);
if (str.IndexOf('+') != -1) this.Text = (a + b).ToString();
if (str.IndexOf('-') != -1) this.Text = (a - b).ToString();
}