Avatar billede lauge Nybegynder
18. april 2004 - 12:57 Der er 3 kommentarer

Interface - hvordan?

Jeg har ladet mig fortælle, at et Interface er løsningen på mit problem.

Jeg har en del kode. som jeg har i 2 udgaver overalt i mit system i mine repeatere, til DataRowView og til DbDataRecord. Men jeg er træt at at vedligeholde 2 sæt koder, som stortset er det samme.

Men hvordan laver jeg et interface, som kan lave disse to Subs til én Sub??

Jeg lister her de forskelle som der er i mine Subs:

A:
Dim dbr As DbDataRecord = CType(e.Item.DataItem, DbDataRecord)
If CInt(dbr("id")) = _myPageID Then

B:
Dim dbr As DataRowView = CType(e.Item.DataItem, DataRowView)
If CInt(dbr.Row("id")) = _myPageID Then
Avatar billede lauge Nybegynder
18. april 2004 - 12:58 #1
gerne et vb eksempel tak :-)
Avatar billede snepnet Nybegynder
18. april 2004 - 14:23 #2
Det kan du ikke gøre med et interface, men du kan lave en baseklasse hvor du implementerer metoden, og så sørge for at alle de klasser der fordrer funktionaliteten arver fra den.
Avatar billede burningice Nybegynder
18. april 2004 - 15:50 #3
et interface indeholder ikke noget kode, så du slipper ikke for at have to sæt kode med et interface

dog kan du vel abstrahere din kode ind i en seperat klasse der tager højde for forskelle ved DataRowView og DbDataRecord:

public class MinDataKlasse {
  object data;

  public MinDataKlasse(object o) {
      this.data = o;
  }

  public int Id {
      get {
        Type t = typeof(this.data);
        if (t == typeof(DbDataRecord) {
            return ((DbDataRecord)this.o)["id"];
        } else if (t == typeof(DataRowView) {
            return ((DataRowView)this.o).Row["id"];
        } else {
            return 0;
        }
      }
  }
}


if ((new MinDataKlasse(e.Item.DataItem).Id) == _myPageID) {

}
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester