2017-11-04 2 views
3

Ich habe eine Methode, wo ich Liste des Objekts wie folgt übergeben:Dynamisch Pass Liste des Objekts als Parameter

public void BindGridView(int pageIndex, List<Users> lstUsers, GridView grd, Panel pl) 
{ 

} 

Siehe in dem oberhalb der Liste List<Users> festgelegt ist, so kann ich es statisch passiere in eine Methode. Ich werde die gleiche Methode verwenden, um Daten in einem Raster anzuzeigen und zu planen, dass sie dynamisch weitergegeben werden, wenn eine andere Liste von Objekten vorhanden ist. In der obigen Art und Weise, habe ich, wie unten die ganze Liste zu erklären:

public void BindGridView(int pageIndex, List<Groups> lstGroups, GridView grd, Panel pl) 
{ 
} 

public void BindGridView(int pageIndex, List<GroupDetails> lstGroupDetails, GridView grd, Panel pl) 
{ 
} 

Ist ther eine Möglichkeit, wo ich es so etwas wie List<Dynamic>, sagt für Dienstprogramm Zweck dynamisch erklären kann, so dass jedes Mal, wenn ich jede Liste passieren kann Objekt?

+1

Lesen Sie mehr über Generika und machen das Verfahren generisch und übergeben 'Liste ' –

+0

Dank viel @Gilad Grün und ich habe es. Eine für die Sache, könnte ich eine Liste wie diese "Liste lst = null;" erklären und versuchte, es sagt, ** Der Typ oder Namespace 'T' konnte nicht gefunden werden **. – user8512043

Antwort

4

Sie suchen wahrscheinlich nach Generika hier. das heißt:

public void BindGridView<T>(int pageIndex, List<T> lstUsers, GridView grd, Panel pl) 
{ 
    ... 
} 
+0

Danke dafür @ Aominè und genau das habe ich gesucht. Eine für die Sache, könnte ich eine Liste wie diese "Liste lst = null;" erklären und versuchte, es sagt, ** Der Typ oder Namespace 'T' konnte nicht gefunden werden **. – user8512043

+1

können Sie nur tun, wenn es innerhalb des Bereichs der Methode ist, jedoch 'T' existiert nicht außerhalb der Methode. Beachten Sie auch, dass 'T' nur ein Platzhalter ist. Wenn Sie also die Methode aufrufen, müssen Sie den konkreten Typ übergeben, dh' List ' –

+1

Wenn Sie wollen, dass' T' durch die Klasse sichtbar ist, dann können Sie Sie müssen die Klasse selbst verallgemeinern, damit Sie 'T' in der Klasse verwenden können. Werfen Sie einen Blick auf [** Einführung in Generics (C# -Programmierhandbuch) **] (https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/generics/introduction-to-generics) –