2016-08-16 3 views
0

Я хотел бы преобразовать этот метод в объект, потому что я использую его много раз, и единственное, что меняется, это поле «coleccion5», одно внутри цикла foreach и в обратном.Преобразование метода в объект и объект C#

public AutoCompleteStringCollection Auto_telefono() 
    { 
     DataTable dt = Datos(); 
     //recorrer y cargar los items para el autocompletado 
     int cantidad = dt.Rows.Count; 
     int contados = 0; 
     foreach (DataRow row in dt.Rows) 
     { 
      coleccion5.Add(Convert.ToString(row["telefono"])); 
      contados++; 
      progressBar1.Value = contados/cantidad * 30 + 70; 
     } 
     return coleccion5; 
    }//fin metodo de llenado de autocompletado 
+3

* конвертировать этот метод в объект * ????? это странный вопрос. – Rahul

+0

Непонятно, что вы просите. Пожалуйста, предоставьте хороший [mcve], который показывает основную операцию вашего кода, и объясните _precisely_, как вы хотите, чтобы код работал. –

ответ

0

Если coleccion5 это единственное изменение, а затем передать его в качестве параметра

public void Auto_telefono(AutoCompleteStringCollection coleccion) 
{ 
    DataTable dt = Datos(); 
    //recorrer y cargar los items para el autocompletado 
    int cantidad = dt.Rows.Count; 
    int contados = 0; 
    foreach (DataRow row in dt.Rows) 
    { 
     coleccion.Add(Convert.ToString(row["telefono"])); 
     contados++; 
     progressBar1.Value = contados/cantidad * 30 + 70; 
    } 
} 

И называть его

Auto_telefono(coleccion5); 

Заметим также, что вам не нужно, чтобы вернуть коллекцию, так как то, что вы передаете в качестве параметра ссылку на коллекцию, а не на объект коллекции, потому что класс AutoCompleteStringCollection (и фактически все классы) - reference types.

var coleccion5 = new AutoCompleteStringCollection(); 
Auto_telefono(coleccion5); 
// Now coleccion5 contains the added entries, no assignement to it needed. 
1

Почему бы не стать статическим методом и не добавить параметр для коллекции?

где T может быть добавлено как обобщение метода или «жестко закодировано», если тип всегда один и тот же.

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