Avatar billede tele_lucien Nybegynder
04. februar 2003 - 22:54 Der er 6 kommentarer

Forskellen på at nedarve fra en anden klasse og Import?

Hej med jer...........

Hvad er forskellen, eller rettere under hvilken omstændigheder skal man vælge følgende:

Nedarve fra en anden klasse man selv har lavet. Altså så f.eks. alle en code-behind filer nedarver fra en klasse man selv har lavet og den arver måske igen fra en anden ovs.

Eller lave en klasse, og så Importere det hvor man skal bruge den?

Mvh

/Lucien
Avatar billede simon.ulsnes Nybegynder
04. februar 2003 - 23:01 #1
Jeg tror du har misforstået noget...

Når du siger importerer, går jeg ud fra at du hentyder til Import i VB.NET. Import importerer et namespace til koden (for eksempel System.Windows.Forms). Der kan så være forskellige klasser i de forskellige namespaces. Følgende er det samme:

Imports System.Windows.Forms
Public Class
  Inherits Form
End Class

og

Public Class
  Inherits System.Windows.Forms.Form
End Class

(er ikke helt sikker på min VB.NET-syntaks, jeg er C#'er...)

Import kan ikke bruges til klasser overhovedet.

// Simon

Når man nedarver fra en anden klasse, laver man sådan set en kopi af den man nedarver fra plus det ekstra man putter på.
Avatar billede tele_lucien Nybegynder
04. februar 2003 - 23:19 #2
Hvorfor er det at misforstå noget........

Jeg har f.eks. lavet et class library i VS.NET hvor jeg har lavet et par klasser. Class1.vb og Class2.vb f.eks. I min web appikation, laver jeg såen  reference til den. Når jeg kompilere det, kan jeg Import den klasse derfra i alle mine Web Application filer.
Avatar billede tele_lucien Nybegynder
04. februar 2003 - 23:23 #3
i VB.NET filerne ja........ hehe! :-)

Hvad er så forskellen på det, og så at lave en klasse fil, i sit web applikation projekt og lave det sådan at alle aspx code-behind filerne nedarver fra den klasse.

Public Class test
    Inherits Class1

End Class

Eller

Imports Class1
Public Class test
    Inherits System.Web.UI.Page
End Class
Avatar billede burningice Nybegynder
05. februar 2003 - 00:36 #4
tele_lucien>> ved det første du har gjort, altså lavet et class libary, og så importere det (altså lave reference), så gør du brug af nogle klasser som du har lavet.
Ved det andet eksempel, så tager du en klasse og så udvider den... det kan være det er en klasse MS har lavet som du ikke er helt tilfreds med, f.eks. System.Web.UI.Page klasse, og på den måde kan man udvide den ved hjælp af nedarving.

1. Ved at importere en CL til sit projekt kan man gøre brug af de klasser og metoder der følger med
2. Ved at nedarve en klasse udvider man den, og laver en ny... som så kan bruges i sit project, eller måske kompileres til en CL som så igen kan imorteres i et tredie projekt.

Et godt eksempel er simon, som blev godt træt af den TcpListener som der følger med i .Net BCL, så han valgte at lave en ny. Det er dog ingen grund til at opfinde den dybe tallerken to gange, så han har såmen bare nedarvet fra den og udvidet den med lidt ekstra finesser :)
Avatar billede tele_lucien Nybegynder
05. februar 2003 - 17:05 #5
Cool explanation............ nu fatter jeg det!

Thnxxx!
Avatar billede burningice Nybegynder
06. februar 2003 - 08:59 #6
:) np
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

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