2011-01-07 41 views
0

i Klasse SQLIO haben, gibt es eine Methodeintern, öffentlich, statisch, außer Kraft setzen

public void GetProducts() 
{ 

Welche Datentabelle, die in meinem Usercontrol füllen muss. Bitte geben Sie an, welches Schlüsselwort (öffentliche Überschreibung) ich verwenden muss, um auf SQLIO.GetProducts() zuzugreifen; Von UserControl und GetProducts kann auf UserControls DataTable zugreifen

+0

Ich könnte für diesen Kommentar angegriffen werden, aber ich denke, es muss gesagt werden. Wenn Sie den Unterschied zwischen intern, öffentlich, statisch, geschützt nicht kennen, sollten Sie den folgenden Link lesen: http://msdn.microsoft.com/en-us/library/wxh6fsc7.aspx override würde nicht einmal auf was Sie anwenden versuchen. Sie sollten wirklich herausfinden, was abstrakte Methode bedeuten würde. –

Antwort

2

Wenn Sie von der Klasse ohne eine Instanz (wie in Ihrem Beispiel SQLIO.GetProducts()) darauf zugreifen möchten, sollte es public static sein. Damit GetProducts() auf die Datentabelle des Benutzersteuerelements zugreifen kann, müssen Sie sie wahrscheinlich als Referenzparameter übergeben. Alternativ können Sie GetProducts ändern, um eine DataTable zurückzugeben und diese stattdessen in Ihrem UserControl zu verwenden.

1
DataTable dt; 

    dt = SQLIO.GetProducts(); 

----------------------------------------- 

    public static DataTable GetProducts() 
     { 
     } 
+1

Sie können das '= new DataTable()' entfernen. Es hat keinen Sinn, eine neue DataTable zu instanziieren, wenn die Objektreferenz 'dt' auf * eine andere * DataTable in der nächsten Zeile zeigt. – Heinzi

+0

Danke Heinzi, ich habe den Schnitt empfohlen. –

Verwandte Themen