Avatar billede entracore Nybegynder
14. april 2003 - 09:51 Der er 6 kommentarer og
1 løsning

Metoder

Hey

Lige et spørgsmål vedrørende metoder i C#. Jeg her lavet en medtode der sætter en tom integer til tallet 0.

F.eks.

public class IntegerClass
{
    int gInteger;

    public int GetInteger()
    {
          return gInteger;
    }

    public void SetInteger(int aInteger)
    {
          gInteger = aInteger;

          if (aInteger == null)
          {
              aInteger = 0;
          }
    }
}

Mit spørgsmål går ud på hvordan kalder jeg lettest denne metode. Jeg forstiller mig lidt alá VB og funktioner. Feks. GetInteger(AnEmptyInteger)

Håber at der er nogle der kan hjælpe
Avatar billede z42cool Nybegynder
14. april 2003 - 10:04 #1
Først og fremmest kan aInteger ikke == null, da integer er en value type og kun reference types kan være null. c# vil automatisk initialisere din integer til 0. Kald af SetInteger med værdien null som parameter vil naturligvis også fejle da parameteren er af typen integer som er en value type som derfor ikke kan være null.
Avatar billede z42cool Nybegynder
14. april 2003 - 10:06 #2
Jeg ved selvfølgelig ikke hvad du ønsker at opnå, men vil en property ikke være et bedre valg?

public class IntegerClass
{
  private int g;
  public int G
  {
    get
    {
      return this.g;
    }
    set
    {
      this.g = value;
    }
  }

  public IntegerClass()
  {
    //Explicit initialisering af g til 0
    this.g = 0;
  }
}
Avatar billede entracore Nybegynder
14. april 2003 - 10:08 #3
z42cool >> Ok - grunden til at jeg stiller spørgsmålet er at jeg her en http request der ser nogenlunde sådan her ud: default.aspx?Page=3&id=7 og jeg vil gerne validere om Page og Id rent faktisk indeholder en værdi. Hvordan kan dette så gøres i C#?
Avatar billede z42cool Nybegynder
14. april 2003 - 10:14 #4
int page = 0;
try
{
  page = Int32.Parse(Page.Request.QueryString["Page"])
}
catch (Exception)
{
  //Håndter at Page ikke var et tal her
}

int id = 0;
try
{
  id = Int32.Parse(Page.Request.QueryString["Id"])
}
catch (Exception)
{
  //Håndter at Id ikke var et tal her
}
Avatar billede entracore Nybegynder
14. april 2003 - 10:20 #5
z42cool >> Nu er jeg ikke så meget inde i C# men jeg har altid forstået at Catch Exception blev anvendt ved fejl søgning og håndtering og ikke som en egenlig del af programkoden. Tager jeg fejl?
Avatar billede z42cool Nybegynder
14. april 2003 - 10:23 #6
Nej, men du vil gerne forsøge at anvende en streng (string Request.QueryString[string key]) som en int. Dvs. på en eller anden måde skal du forsøge at klemme noget data som potentielt kan indeholde alt muligt andet end en integer ned i en integer kasse, hvis det går galt vil du naturligvis gerne håndtere det på en pæn måde fremfor at smide en fejl til brugeren, derfor try..catch!
Avatar billede entracore Nybegynder
14. april 2003 - 10:38 #7
Kanon - mange tak for hjælpen z42cool :-)
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