Чтение текста в массив, обработчик комманд в текстовом поле - C#
Формулировка задачи:
Всем привет! Хочу написать обработчик команд и команд с параметрами для настроек в текстовом окне. Обработчик я даже написал, и он правильно работает, но всёравно есть проблема. По мере написания логики обработки комманд, вышло так что всё сделал в дурном тоне программиста (всё через if):
Можно ли без этих барикад сделать всё более компактнее с таким же принцепом работы?
P.S. Пытался писать через цикл, но он вызывал завичание программы при обработке комманды.
Взаранее спасибо за помощь!
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace OGAAUServer.system
{
class ConsoleProcessor
{
private string notfound;
public string NotFoudCommand { get; private set; }
public string ConCommand { get; private set; }
public string SubConCommand { get; private set; }
public string paramValue { get; private set; }
public string paramValue1 { get; private set; }
public string paramValue2 { get; private set; }
public string paramValue3 { get; private set; }
public string paramValue4 { get; private set; }
public string paramValue5 { get; private set; }
public string paramValue6 { get; private set; }
public string paramValue7 { get; private set; }
public string paramValue8 { get; private set; }
public string paramValue9 { get; private set; }
public string paramValue10 { get; private set; }
public int СharactersNumber { get; private set; }
public ConsoleProcessor(string str)
{
str += ":@&%#stop#%&@";
string[] parts = str.Split(':');
notfound = parts[0];
notfound += ".@&%#stop#%&@";
string[] parts1 = notfound.Split('.');
if (parts[1] != "@&%#stop#%&@")
{
paramValue1 = parts[1];
if (parts[2] != "@&%#stop#%&@")
{
paramValue2 = ":" + parts[2];
if (parts[3] != "@&%#stop#%&@")
{
paramValue3 = ":" + parts[3];
if (parts[4] != "@&%#stop#%&@")
{
paramValue4 = ":" + parts[4];
if (parts[5] != "@&%#stop#%&@")
{
paramValue5 = ":" + parts[5];
if (parts[6] != "@&%#stop#%&@")
{
paramValue6 = ":" + parts[6];
if (parts[7] != "@&%#stop#%&@")
{
paramValue7 = ":" + parts[7];
if (parts[8] != "@&%#stop#%&@")
{
paramValue8 = ":" + parts[8];
if (parts[9] != "@&%#stop#%&@")
{
paramValue9 = ":" + parts[9];
if (parts[10] != "@&%#stop#%&@")
{
paramValue10 = ":" + parts[10];
}
}
}
}
}
}
}
}
}
}
if (parts1[0] != "@&%#stop#%&@")
{
ConCommand = parts1[0];
NotFoudCommand = parts1[0];
if (parts1[1] != "@&%#stop#%&@")
{
SubConCommand = parts1[1];
NotFoudCommand += "." + parts1[1];
}
}
paramValue = paramValue1 + paramValue2 + paramValue3 + paramValue4 + paramValue5 + paramValue6 + paramValue7 + paramValue8 + paramValue9 + paramValue10;
}
}
}private int partsnum = 1;
...
partsnum = 1;
while (parts[partsnum] != "@&%#stop#%&@")
{
switch ()
{
case 1:
paramValue1 = parts[partsnum];
partsnum += 1;
break;
case 2:
paramValue2 = ":" + parts[partsnum];
partsnum += 1;
break;
case 3:
paramValue3 = ":" + parts[partsnum];
partsnum += 1;
break;
case 4:
paramValue4 = ":" + parts[partsnum];
partsnum += 1;
break;
case 5:
paramValue5 = ":" + parts[partsnum];
partsnum += 1;
break;
case 6:
paramValue6 = ":" + parts[partsnum];
partsnum += 1;
break;
case 7:
paramValue7 = ":" + parts[partsnum];
partsnum += 1;
break;
case 8:
paramValue8 = ":" + parts[partsnum];
partsnum += 1;
break;
case 9:
paramValue9 = ":" + parts[partsnum];
partsnum += 1;
break;
case 10:
paramValue10 = ":" + parts[partsnum];
partsnum += 1;
break;
}
}Решение задачи: «Чтение текста в массив, обработчик комманд в текстовом поле»
textual
Листинг программы
for (int i = 0; i < parts.Length; i++)
{
if (parts[i] == "@&%#stop#%&@") //вот здесь тока сомневаюсь, мб должно быть parts[i] != "@&%#stop#%&@"
paramValues[i] = ":" + parts[i];
}