Tablica parametrów

0

Witam,

Mam problem z przekazaniem parametrów do funkcji tzn.mam funkcję w pewnej klasie gdzie zastosowane są typy niegeneryczne :

 public static DataTable CreateTable(string select, params object[] values)
        {
            return (DataTable) LendReader(select, new BorrowReader(DataServices.CreateTable), values);
        }

Rozumiem że pierwszy parametr muszę wrzucić normalnie a resztę mogę poprzez tablice i tutaj jest kłopot.
Chciałbym wrzucić do niej tablice parametrów (wszystkie parametry są stringami) próbowałem utworzyć zwykłą tablice, ArrayList lecz wyrzuca mi błąd.

Czy mógłby ktoś podpowiedzieć jak to zrobić?
Z góry dziękuje za odpowiedzi.

1

Dobra wywalam te dwa posty i napiszę Ci od nowa:

Słowo kluczowe params służy do tego, żeby w argumencie metody była od razu tworzona tablica bez konieczności jej tworzenia przed wywołaniem. Dzięki temu masz metodę ze zmienną ilością argumentów. Takie wywołanie jak to niżej jest najbardziej pasujące do Twojego przykładu:

namespace Program {
    class Program {
        public static void Foo(string str, params object[] array) {
            Console.WriteLine("First arg: " + str + "\n\nArray:");
            array.ToList().ForEach(prm => Console.WriteLine(prm.ToString())); 
        }

        static void Main(string[] args) { 
            Foo("first", "one", "two"); 
        }
    }
}

Jeżeli natomiast tworzysz tablicę przed metodą gdzieś tam w kodzie to params jest niepotrzebne. Jak widzisz poniższe rozwiązanie działa bez problemu:

namespace Program {
    class Program {
        public static void Foo(string str, object[] array) {
            Console.WriteLine("First arg: " + str + "\n\nArray:");
            array.ToList().ForEach(prm => Console.WriteLine(prm.ToString())); 
        }

        static void Main(string[] args) {
            var array = new string[2];
            array[0] = "one";
            array[1] = "two";

            Foo("first", array); 
        }
    }
}

PS: Oczywiści w drugim przypadku z params też zadziała.

1 użytkowników online, w tym zalogowanych: 0, gości: 1