Avatar billede gurvic Nybegynder
13. januar 2007 - 00:44 Der er 20 kommentarer og
3 løsninger

egne klasser

er første gang jeg skal arbejde med egne klasser så bær lige over med mig.
hvorfor pokker virker det ikke? får fejlen :
No overload for method 'vare' takes '7' arguments

her er min vare.cs

// vare.cs
//
namespace E
{
using System;
using System.Collections;
using System.Web.UI;
using System.Web.UI.WebControls;

    public class vare
    {
        private int vareAntal;
        private int vareNr;
        private string vareNavn;
        private double varePris;
        private double varePrisUden;
        private int vareAntalPrEnhed;
        private int vareEnhedsId;

        public vare(int vareAntal, int vareNr, string vareNavn, double varePris, double varePrisUden, int vareAntalPrEnhed, int vareEnhedsId)
        {
            this.vareAntal = vareAntal;
            this.vareNr = vareNr;
            this.vareNavn = vareNavn;
            this.varePris = varePris;
            this.varePrisUden = varePrisUden;
            this.vareAntalPrEnhed = vareAntalPrEnhed;
            this.vareEnhedsId = vareEnhedsId;
        }
        public int VareAntal
        {
            get
            {
                return vareAntal;
            }
            set
            {
                vareAntal = value;
            }
        }



                public int VareNr
        {
            get
            {
                return vareNr;
            }
            set
            {
                vareNr = value;
            }
        }

        public string VareNavn
        {
            get
            {
                return vareNavn;
            }
            set
            {
                vareNavn = value;
            }
        }

        public double VarePris
        {
            get
            {
                return varePris;
            }
            set
            {
                varePris = value;
            }
        }

        public double VarePrisUden
        {
            get
            {
                return varePrisUden;
            }
            set
            {
                varePrisUden = value;
            }
        }

        public int VareAntalPrEnhed
        {
            get
            {
                return vareAntalPrEnhed;
            }
            set
            {
                vareAntalPrEnhed = value;
            }
        }

          public int VareEnhedsId
        {
            get
            {
                return vareEnhedsId;
            }
            set
            {
                vareEnhedsId = value;
            }
        }



    }
}

og min test.aspx

<%@ Page Language="C#" ClassName=vare" %>
<script runat="server">

    void Page_Load(object sender, EventArgs e)
        {
        vare varetest;

        varetest = new vare();


        ArrayList vareKurv = new ArrayList();
        vareKurv.Add(new vare('1', '1', '"Røde Trusser"', '11.75', '12.75', '3', '1'));
        }

</script>
Avatar billede arne_v Ekspert
13. januar 2007 - 00:49 #1
der er noget galt

der er 7 argumenter i vare constructor

og new vare('1', '1', '"Røde Trusser"', '11.75', '12.75', '3', '1') bør give en stribe
syntax fejl

skal formentligt være new vare(1, 1, "Røde Trusser", 11.75, 12.75, 3, 1)
Avatar billede gurvic Nybegynder
13. januar 2007 - 00:54 #2
ja selvfølgelig uden de syntaxfejl. Undskyld.
Det er når new vare(1, 1, "Røde Trusser", 11.75, 12.75, 3, 1) den melder No overload for method 'vare' takes '7' arguments
Avatar billede arne_v Ekspert
13. januar 2007 - 00:57 #3
er vare.cs compilet til vare.dkk og lagt i bin dir eller ligge vare.cs i det
dir som ASP.NET 2.0 selv compiler (app_code tror jeg det er) ?
Avatar billede gurvic Nybegynder
13. januar 2007 - 00:59 #4
argh nej, så langt har jeg vist ikke læst. Hvordan pokker gør jeg deT?
Avatar billede gurvic Nybegynder
13. januar 2007 - 01:02 #5
bruger webmatrix og har bare gemt som vare.cs
Avatar billede arne_v Ekspert
13. januar 2007 - 01:06 #6
bruger du ASP.NET 1.1 eller 2.0 ?
Avatar billede gurvic Nybegynder
13. januar 2007 - 01:08 #7
2.0
Avatar billede arne_v Ekspert
13. januar 2007 - 01:17 #8
prøv og lav et dir app_code i samem dir som din test.aspx og put vare.cs i det dir
Avatar billede gurvic Nybegynder
13. januar 2007 - 01:31 #9
får samme fejl
Avatar billede rasserw Nybegynder
13. januar 2007 - 10:42 #10
Er der ikke lidt misforståelser i det med egen klasse i app_code dir?

Aspx-siden ser ud til at være den egentlige "vare" class.
<%@ Page Language="C#" ClassName=vare" %>

Så sprøgsmålet er, om kaldet i page_load kalder den forkerte class "vare" (code-behind) fremfor en "E.vare" class i app_code??

Det burde nemlig virke, dog ikke det direkte kald til class som i første post varetest = new vare(), men med de 7 argumenter.

Venligst

Arne Johansen
www.frameworker.net
Avatar billede kalp Novice
13. januar 2007 - 10:46 #11
jeg har også siddet og kigget på det... vil mene den skal se sådan ud
<%@ Page language="c#" Codebehind="test.cs" Inherits="test.test" %>
Avatar billede kalp Novice
13. januar 2007 - 10:48 #12
sorry.. nok mere

<%@ Page language="c#" Codebehind="test.cs" Inherits="test" %>
eller
<%@ Page language="c#" Codebehind="test.aspx.cs" Inherits="test" %>
Avatar billede gurvic Nybegynder
13. januar 2007 - 14:30 #13
ok skal lige være med her. Altså det er en fejl at der står classname=vare i test.aspx?
Men den skal vel ikke arve test, men vare ikk?
Avatar billede gurvic Nybegynder
13. januar 2007 - 15:19 #14
hvis jeg i test.aspx skriver sådan her i stedet <%@ Page Language="C#" Inherits="E.vare" %> så får jeg denne fejl: Could not load type 'E.vare'.
Avatar billede kalp Novice
13. januar 2007 - 15:28 #15
du misforstår det...

Din vare klasse har intet at gøre med din aspx side!

din test.aspx side har en codebehind fil... og hvis ikke skal den ikke arve fra noget..
Avatar billede rasserw Nybegynder
13. januar 2007 - 15:37 #16
Ja, din "vare" klasse er helt uafhængig, hvilket er meningen med det hele, så den kan kaldes fra mange forskellige aspx-sider (og øvrig programkode)

Glem alt om nedarvning i den forstand. Din aspx-side har en codebehind-fil (test.aspx.cs) I en metode derinde kalder du (laver en instans) af var klassen på flg. måde:

vare varetest = new vare(1, 1, "Røde Trusser", 11.75, 12.75, 3, 1);

Det er ordet NEW som gør at der laves en ny instans af klassen, blot for forståelsens skyld. :o)

Du skal anse aspx-siden OG codebehind-filen (test.aspx-cs) som een og samme fil/klasse.

Og vare klassen som noget der står på sidelinjen og kan kaldes efter behov.
Se lidt forklaring her:
http://www.4guysfromrolla.com/webtech/100500-1.shtml

Venligst
Arne Johansen
www.frameworker.net
Avatar billede gurvic Nybegynder
13. januar 2007 - 15:49 #17
arh ok, sådan. Nu tror jeg sørme jeg er med ;) og så virker skidtet jo fint.
Hvordan med point, i har jo sådan set alle 3 hjulpet til forståelsen.
Avatar billede kalp Novice
13. januar 2007 - 18:04 #18
Du venter på de 2 andre lægger et svar.
Så kan du markere alle vores navne i en den boks der er næsten helt nede i venstre hjørne og trykke på accepter.

Godt du fik tingene på plads;O)
Avatar billede arne_v Ekspert
13. januar 2007 - 19:52 #19
.
Avatar billede gurvic Nybegynder
13. januar 2007 - 21:43 #20
Smukt tak skal i have, så mangler bare rasserrw.
Det hele blev pludselig meget lettere ;-)
Avatar billede rasserw Nybegynder
13. januar 2007 - 22:10 #21
Svar svar = new Svar();
Avatar billede rasserw Nybegynder
13. januar 2007 - 22:14 #22
hvordan er der nu man gør?? Nåja, svarer... ;O)
Avatar billede gurvic Nybegynder
13. januar 2007 - 22:38 #23
Tak skal i have.
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