Avatar billede Jensen1234 Nybegynder
04. februar 2009 - 23:57 Der er 8 kommentarer

Et lille let problem i C# (nybegynder)

Hej allesammen, er lige startet på C#
og er løbet ind i et problem, det er denne her
tutorial og det er afsnittet om functions:

http://csharp.net-tutorials.com/basics/functions/

Syntes snart det er ligemeget hvad jeg prøver,
så giver den mig en fejlmeddelse :(

Her er det kode jeg har, det er sikkert forkert
men har skrevet det så godt jeg nu kunne udfra
hvad jeg læste deri.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
    class Program
    {
        public int AddNumbers(int number1, int number2)
        {
            int result = number1 + number2;
            if (result > 10)
            {
                return result;
            }
            return 0;
        }

        static void Main(string[] args)
        {
            int result = AddNumbers(10, 5); (Den siger fejlen er her)
            Console.WriteLine(result);
        }

    }
}

Fejlmeddelsen lyder på følgende:
An object reference is required for the non-static field, method, or property 'ConsoleApplication1.Program.AddNumbers(int, int)'   

Håber mange gange i kan hjælpe mig og at
det blot er mig der har misforstået noget,
så det hurtigt lige kan fixes så jeg kan komme videre.

På forhånd mange tak :)
mvh Jens
Avatar billede Jensen1234 Nybegynder
04. februar 2009 - 23:59 #1
Ps. Det er altså en fejl at der står 0 point,
havde sat den til 30 men trykkede preview og der
havde den så sat den til 0 nede i bunden.
Så det lgiesom jeg trykkede, vil meget gerne ændre det tilbage
til 30 igen.
Men hvordan ændrer jeg i posten?

Mvh Jens
Avatar billede ksoren Nybegynder
05. februar 2009 - 00:01 #2
Forskellen er hvorvidt du sætter "static" på funktionen eller ej. Uden static, skal du først instantiere et objekt af klassen før du får adgang til funktionen.
Avatar billede Jensen1234 Nybegynder
05. februar 2009 - 00:06 #3
Der må jeg nok desværre indrømme at jeg intet forstod??
static stod der bare ?? men skal det fjernes eller ??
og skal der evt stå andet i stedet, hvad gør static forresten.
Hvad betyder instantiere? og object af klassen?

Er helt lost.
Avatar billede ksoren Nybegynder
05. februar 2009 - 00:06 #4
Dvs. uden static:

static void Main(string[] args)
{
  Program p = new Program();
  int result = p.AddNumbers(10, 5); //
  Console.WriteLine(result);
}
Avatar billede ksoren Nybegynder
05. februar 2009 - 00:07 #5
Hvis du sætter static på:

public static int AddNumbers(int number1, int number2)


så kan du tilgå funktionen direkte på klassen, og din oprindelige kode vil virke.
Avatar billede Jensen1234 Nybegynder
05. februar 2009 - 00:08 #6
Skrev Static på den funktion der før hed public.
Men hvad er forskellen på de 2?

Og underligt at tutorialen ikke skriver noget
om det? Men bare skriver public.

Men mange gange tak indtil videre, håber du vil forklare mig
hvad instantiere betyder (og gør?)
Og hvad static og public er?.

:)

Mvh Jens
Avatar billede ksoren Nybegynder
05. februar 2009 - 00:19 #7
Det er jo et større emne. Har du læste introduktionen til klasser, på samme side:

http://csharp.net-tutorials.com/classes/introduction/
Avatar billede Jensen1234 Nybegynder
05. februar 2009 - 00:26 #8
Nope der er jeg ikke kommet til endnu.
Står der noget mere om det der da?

Men så springer jeg da bare videre i tutorialen :)

Mange tak for hjælpen,
må håbe det ikke bliver nødvendigt igen (utopi:)

Mvh Jens
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