Avatar billede c-sharp Nybegynder
17. marts 2004 - 08:07 Der er 23 kommentarer og
2 løsninger

Hvordan fungere nedarvning i asp.net

Hvordan fungere nedarvning i asp.net, skal jeg lavet en .cs klasse som jeg nedarver fra, og hvordan er syntaksen i de klasser der nedarves til?
Avatar billede burningice Nybegynder
17. marts 2004 - 08:11 #1
når du siger asp.net, mener du så forbindelsen mellem aspx og cs-fil?

i så fald bruger du Inherits="klasse-navn" i dit page-direktiv.
Avatar billede c-sharp Nybegynder
17. marts 2004 - 08:28 #2
Nej jeg har nogle metoder og attributter som jeg bruger i forskellige .cs klasser, disse vil jeg have placeret et centralt sted. så kan jeg ikke oprette en klasse jeg nedarver fra?
Avatar billede burningice Nybegynder
17. marts 2004 - 08:38 #3
hvis det er præsentation-logic relateret, så kan du placere dem i en base-class som alle dine aspx-sider arver fra.
Avatar billede c-sharp Nybegynder
17. marts 2004 - 08:53 #4
Kan jeg ikke nedarve til min .cs fil ?

Det er nogle hjælpe metoder.
Avatar billede burningice Nybegynder
17. marts 2004 - 09:18 #5
ikke direkte til din cs-fil, da den jo ikke vil findes mere når koden er kompileret... du skal istedet nedarve fra den KLASSE du har til at stå i din cs-fil.
Avatar billede c-sharp Nybegynder
17. marts 2004 - 09:32 #6
hvis jeg har 5 sider som bruger en kalender, de bruger den alle på samme måde og derfor synes jeg at det kunne være smart hvis de metoder og attributer lå i en klasse som de alle nedarvede fra.

Men det kan man ikke lave på den måde i asp.NET eller hvad?
Avatar billede repsak Nybegynder
17. marts 2004 - 09:56 #7
lav f.eks. som cyberfessor skriver: lav en base klasse. (kan laves på flere måder)
class Base : Page{
  protected ...Calender...
  public smartMetodeSomSkalBrugesPåFlereSider(string parameter){}
}
Inherits="Base"
Avatar billede c-sharp Nybegynder
17. marts 2004 - 10:25 #8
hvor laver jeg denne base klasse? skal den ligge i sin egen .cs fil?
Avatar billede repsak Nybegynder
17. marts 2004 - 10:26 #9
ja - det ville jeg gøre. Og så kompilere den til .dll
Avatar billede burningice Nybegynder
17. marts 2004 - 10:41 #10
vb-begynder>> hvad med at lægge kalenderen ned i en ascx-fil og inkludere den på alle de sider der skal bruge den?
Avatar billede c-sharp Nybegynder
17. marts 2004 - 10:57 #11
Det bliver nok også løsningen.

men vil det sige at nedarvning ikke rigtig bruges i asp.net, som man bruger det når man koder applikationer?
Avatar billede burningice Nybegynder
17. marts 2004 - 11:03 #12
vb-begynder>> joda...  jeg bruger da nedarving i stor stil... man skal dog holde tungen lige i munden og holde styr på hvornår man skal bruge nedarving, og hvornår man skal lave en control man kan inkludere på de sider man skal bruge det.
Avatar billede c-sharp Nybegynder
17. marts 2004 - 12:41 #13
Men kan man kun nedarve fra base-class?
Avatar billede burningice Nybegynder
17. marts 2004 - 12:53 #14
du kan nedarve fra alle klasser der ikke er marked sealed
Avatar billede c-sharp Nybegynder
17. marts 2004 - 13:40 #15
Har du et link til hvor jeg kan læse mere om nedarvning i asp.net?
Avatar billede burningice Nybegynder
17. marts 2004 - 13:43 #16
vb-begynder>> *ser opgivende ud*... der er ingen forskel på nedarving i asp.net end andre steder i .net miljøet
Avatar billede c-sharp Nybegynder
17. marts 2004 - 13:58 #17
Du nævner en base-class er det en konkret klasse eller er det bare en alm. super klasse?
Avatar billede burningice Nybegynder
17. marts 2004 - 14:46 #18
baseclass er bare en betegnelse for en klasse man bruger som base for andre klasser... System.Web.UI.Page er f.eks. en base-class da alle aspx-sider arver fra den. Men rent teknisk er den ikke forskellige fra alle andre klasser... det er mere hvad man bruger den til
Avatar billede c-sharp Nybegynder
17. marts 2004 - 15:20 #19
Nå jeg må heller stoppe med at spørge inden du helt opgiver mig :-)

smid nogle svar så er der point!

I skal begge have tusind tak for jeres hjælp og tålmodighed!!
Avatar billede burningice Nybegynder
17. marts 2004 - 17:49 #20
;) du må ikke tage mine kommentarer alt for personligt... jeg kan måske være lidt hurtig til at skrive en spydig kommentar nogen gange, men sådan er jeg bare nu engang :)
Avatar billede nielsbrinch Nybegynder
17. marts 2004 - 17:57 #21
Jeg ville bare lave en statisk klasse, med alle kalender-funktionerne i.

public class Kalender
{
    public static string GetUgedag() {
        return DateTime.Now.DayOfWeek;
    }
}

Så laver du bare alle dine funktioner derinde sådan. Så kan du kalde dem alle steder fra, på denne måde:

Kalender.GetUgedag();
Avatar billede repsak Nybegynder
17. marts 2004 - 19:34 #22
nielsbrinch -> de funktioner har da ikke noget med selve kalenderobjektet at gøre ;-)
Ved nærmere eftertanke ville jeg nok også bruge usercomtrols - eller måske mere raffineret - customcontrols.
Avatar billede burningice Nybegynder
17. marts 2004 - 19:39 #23
nielsbrinch>> det vil nok være pænere med properties:

public class Kalender
{
    public static string Ugedag {
      get {
        return DateTime.Now.DayOfWeek;
      }
    }
}

Kaleder.UgeDag
Avatar billede nielsbrinch Nybegynder
17. marts 2004 - 19:41 #24
"jeg har nogle metoder og attributter som jeg bruger i forskellige .cs klasser, disse vil jeg have placeret et centralt sted"

Det er DET jeg tror han lægger vægt på :-)
Avatar billede repsak Nybegynder
17. marts 2004 - 21:04 #25
who knows - sådan læser jeg det nu ikke:
"hvis jeg har 5 sider som bruger en kalender, de bruger den alle på samme måde og derfor synes jeg at det kunne være smart hvis de metoder og attributer lå i en klasse som de alle nedarvede fra" :-)
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