Avatar billede clausjul Nybegynder
11. juni 2003 - 14:04 Der er 11 kommentarer og
2 løsninger

Benytte enum i en klasse

Jeg har en klasse:

public class ScaleImage
{
    protected enum Dimensions
    {
              Width,
        Height
    }
    public enum AnchorPosition
    {
        Top,
        Center,
        Bottom,
        Left,
            Right
    }

.... metoder m.m.

}

Når jeg f.eks. kalder

ScaleImage.ScalePicture(img,size,Dimension.Width) - så brokker systemet sig over at Dimension ikke er der - Har prøvet med ScaleImage.Dimension.Width - men det virker ikke... Er der en anden måde?
Avatar billede Slettet bruger
11. juni 2003 - 14:06 #1
Tror bare du kan skrive ScaleImage.ScalePicture(img,size,Dimension)
Avatar billede clausjul Nybegynder
11. juni 2003 - 14:08 #2
Nej, det kan man ikke.
Avatar billede jakobandersen Nybegynder
11. juni 2003 - 14:25 #3
Du har jo specificeret din enum til at være protected, dvs. at den kun er tilgængelig internt i klassen eller fra en klasse der nedarver fra denne.

Hvis den skal kunne tilgås udefra så lav den public.
Avatar billede clausjul Nybegynder
11. juni 2003 - 14:29 #4
Ja, det var bare for at prøve at se om det virker - men nej ... begge kører public og det hjælper ikke.
Avatar billede nielslbeck Nybegynder
11. juni 2003 - 15:46 #5
Din klasse hedder Dimensions - men du skriver Dimension i din kode - altså uden "s"... så den har ret i, at Dimension ikke er der :-)
Avatar billede clausjul Nybegynder
11. juni 2003 - 15:53 #6
Hellere ikke den ... ;-(
Jeg skriver det sådan:
ScaleImage.ConstrainProportions(img,200,ScaleImage.Dimensions.Width);

Men den fejler med overloaded method have some invalid arguments.
Avatar billede nielslbeck Nybegynder
11. juni 2003 - 15:54 #7
Og hvordan er ConstrainProportions erklæret?
Avatar billede nielslbeck Nybegynder
11. juni 2003 - 15:58 #8
public class ScaleImage {
Avatar billede nielslbeck Nybegynder
11. juni 2003 - 16:00 #9
Hvad skete der lige der??? Prøver igen:

public class ScaleImage {
  public enum Dimensions {
    Width, Height
  }

  ...
  ConstrainProportions(b, s, Dimensions.Width);
  ...

  public returnType ConstrainProportions(Bitmap img, Size s, Dimensions d) {
    ...
  }

}

Det skal altså virke!
Avatar billede clausjul Nybegynder
11. juni 2003 - 16:32 #10
Ja, det virker, hvis man kalder den i selve klassen. Helt korrekt, men hvis jeg kalder metoden fra fx. en anden klasse sådan som ScaleImage.ConstrainProportions(image,200,Dimensions.Width) - så virker det ikke..
Avatar billede nielslbeck Nybegynder
11. juni 2003 - 16:34 #11
Og din enum er public? Hvad får du helt præcis af fejl?
Avatar billede clausjul Nybegynder
11. juni 2003 - 16:35 #12
Den der "overloaded method have some invalid arguments"...
Avatar billede clausjul Nybegynder
11. juni 2003 - 16:45 #13
Nu har jeg prøvet en anden VS.Net editor - og det virker nu!!?? Mærkeligt...
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