繁体   English   中英

将方法转换为和对象C#

[英]Convert method to and object c#

我想将此方法转换为对象,因为我使用了很多次,唯一改变的是字段“ coleccion5”,即foreach循环内和返回中的那个。

    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

为什么不使用静态方法并添加参数供集合使用?

public static AutoCompleteStringCollection Auto_telefono(List<T> collection)

其中T可以作为泛型添加到方法上,如果类型始终相同,则可以“硬编码”。

如果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类(实际上是所有类)都是引用类型

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM