2013-05-07 76 views
1

我有一个方法将字符串传递给一个类。出于测试原因,我现在已经使用了一个按钮。 我在论坛上搜索了类似的问题,但他们提到了PHP和其他我无法理解的情况。 该类从字符串中去掉几个字符,并根据标题将值分配给3个不同的字符串。我需要将这3个字符串返回给调用者,并将其编码如下。从一个类返回多个值到方法

来电:

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 2013-05-07 05:32:31

+0

谢谢,我应该如何改变调用者来获取这些值? – FeliceM 2013-05-07 05:32:40

+0

非常感谢。完全理解。 – FeliceM 2013-05-07 06:05:34