2013-05-07 4 views
1

У меня есть метод, передающий строку классу. По причинам тестирования я уже использовал кнопку. Я искал в форуме похожие вопросы, но они ссылаются на php и другую ситуацию, которую я не могу понять. Класс выделяет несколько символов из строки и присваивает значение 3 различным строкам в зависимости от заголовка. Мне нужно вернуть эти 3 строки обратно вызывающему абоненту, и я закодировал его следующим образом.Возвращает несколько значений из класса в метод

Caller:

private void button4_Click(object sender, EventArgs e) 
    { 
    string a, b, c; 
    string invia = textBox8.Text.ToString(); 
    Stripper strp = new Stripper(); 
    strp.Distri(invia, out a, out b, out c); 
    textBox7.Text = a; 
    textBox7.Text = b; 
    textBox7.Text = c;} 

Класс:

class Stripper 
{ 

public void Distri (string inArrivo, out string param1, out string param2, out string param3) 

    { 
     string corrente=""; 
     string temperatura=""; 
     string numGiri=""; 
     string f = inArrivo; 
     f = f.Replace("<", ""); 
     f = f.Replace(">", ""); 

     if (f[0] == 'I') 
     { 
     string _corrente = f; 
      _corrente = _corrente.Replace("I", ""); 
      corrente = _corrente; 
     } 
     else if (f[0] == 'T') 
     { 
     string _temperatura = f; 
      _temperatura = _temperatura.Replace("T", ""); 
       temperatura = _temperatura; 
     } 
     else if (f[0] == 'N') 
     { 
     string _numGiri = f; 
      _numGiri = _numGiri.Replace("N", ""); 
      numGiri = _numGiri; 
     } 
     param1 = corrente; 
     param2 = temperatura; 
     param3 = numGiri; 
     } 
     } 
     } 

код работает без проблем, но я не уверен, что это правильный путь, чтобы достичь возвращения нескольких значений из класса. Есть ли способ лучше?

ответ

5

Я думаю создать класс лучше в этом случае

public class MyClass 
    { 
     public string Corrente { get; set; } 
     public string Temperatura { get; set; } 
     public string NumGiri { get; set; } 
    } 

затем

public MyClass Distri(string inArrivo) 
{ 
    // your code 

    MyClass myclass = new MyClass() { 
     Corrente = corrente, 
     NumGiri = numGiri, 
     Temperatura = temperatura 
    }; 
    return myclass; 

} 

это, как вы можете позвонить

Stripper strp = new Stripper(); 
MyClass myclass = strp.Distri(invia); 
значения

// доступа, как показано ниже

textBox7.Text = myclass.NumGiri; 
+2

+1, безусловно, лучший вариант. – Habib

+0

Спасибо, как мне изменить вызывающего абонента, чтобы получить эти значения? – FeliceM

+0

Большое спасибо. Полностью понял. – FeliceM

Смежные вопросы