Avatar billede royal12 Nybegynder
19. juli 2005 - 08:43 Der er 10 kommentarer

MyBaseClass funktioner?

Hej

Jeg har oprettet en base class som nedarver fra page.

Public Class MyBaseClass
    Inherits System.Web.UI.Page

    Protected Overrides Sub OnLoad(ByVal e As EventArgs)
        MyBase.OnLoad(e)
    End Sub

    Public Property bilclass() As bil
        Set(ByVal Value As bil)
            Session("cls_bil") = Value
        End Set
        Get
            Return Session("cls_bil")
        End Get
    End Property
End Class

Og i mine andre classer nedarver jeg så fra MyBaseClass.

Public Class WebForm1
    Inherits MyBaseClass

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim bilen As bil
        bilen.CarType = "1"
        MyBaseClass.bilclass = bilen
        Label1.Text = MyBaseClass.bilclass
    End Sub
end Class

Problemet er at den siger at "non shared members requires an object referance" men har den ikke det? og hvis ikke hvordan får den det så.
(Hvis jeg laver bilclass shared i MyBaseClass, vil den ikke have noget med session variablerne at gøre)

Håber der er en der kan hjælpe.
royal12
Avatar billede royal12 Nybegynder
19. juli 2005 - 08:47 #1
altså det den siger "non shared members requires an object referance" til er MyBaseClass.bilclass i webform1
Avatar billede arne_v Ekspert
19. juli 2005 - 09:09 #2
ja

MyBaseClass.bilclass

er

klassenavn.property

og det kræver at property er shared

Public Shared Property bilclass() As bil

men du mener nok bare

        bilclass = bilen
        Label1.Text = bilclass

da du jo arver fra base class
Avatar billede royal12 Nybegynder
19. juli 2005 - 09:20 #3
ja, men hvis jeg sætter bilclass til shared. vil den ikke have noget med session variablerne i functionen at gører. og det vil jeg gerne den skal. se evt. http://exp.dk/spm/632491
Avatar billede snepnet Nybegynder
19. juli 2005 - 10:26 #4
det er det nederste arne skrev du skal gå efter...

bilclass = bilen
Label1.Text = bilclass

(bilclass = bilen svarer til Me.bilclass = bilen)

mvh
Avatar billede royal12 Nybegynder
19. juli 2005 - 11:33 #5
hej

MyBaseClass.bilclass = bilen
Label1.Text = MyBaseClass.bilclass

er bare test kode for at se om den probber der rigtigt nok ind i session variablen. Hvilket er det jeg søger.

og ved at benytte:

bilclass = bilen
Label1.Text = bilclass

kommer det jo bare direkte, unden det bliver gemt i session
Avatar billede snepnet Nybegynder
19. juli 2005 - 11:42 #6
hej igen :o)

når du skriver billclass = bilen, får du kaldt din billclass property's setter, hvilket så svarer til at følgende kode bliver eksekveret.

Set(ByVal Value As bil)
  Session("cls_bil") = Value
End Set

så du skulle meget gerne få lagt variablen i session.... hvorfor tror du at det ikke sker?

hvis du skriver :
MyBaseClass.bilclass

forsøger du at kalde noget der er associeret med selve typen (MyBaseClass), og ikke en instans (objekt) af typen - og det kræver, at det du kalder er shared, som arne skrev.

mvh
Avatar billede royal12 Nybegynder
19. juli 2005 - 18:03 #7
Ja, okay. Dumme bøde til mig.
Avatar billede snepnet Nybegynder
19. juli 2005 - 18:49 #8
:o)
Avatar billede snepnet Nybegynder
28. juli 2005 - 18:16 #9
hvordan går det her?
mvh
Avatar billede snepnet Nybegynder
07. september 2005 - 17:03 #10
hallo?
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