Permalänk
Medlem

C# problem (nybörjare)

Hej allihop.

Jag har precis börjat lära mig C#, och jag har lite problem med det här programmet jag skriver.
Det hela går ut på att användaren får skriva in ett par tal (lagras i en int vektor), sedan ska det största av dessa tal visas. Jag har precis börjat lära mig om funktioner (även vektorer), och det verkar även vara det som strular.

using System; namespace Läxa3 { class Class1 { public int max(int[] v) { int högsta = v[0]; for(int i = 1; i < v.Length; i++) { if(v[i] > högsta) högsta = v[i]; } return högsta; } static void Main() { int i = 0; int[] n; n = new int[5]; while(i < 5) { Console.Write("Skriv in tal " + i + ": "); n[i] = Convert.ToInt32(Console.ReadLine()); i++; } Console.WriteLine(max(n)); } } }

Det den klagar på är "An object reference is required for the nonstatic field, method, or property 'program3.Class1.max(int[])'

Hoppas att någon kan peka ut mitt nybörjarfel Eller själva grundidén kanske är fel.

Permalänk
Medlem

Kan ingen C# själv, men det är väl typ ungefär som C++/Java antar jag...

Din metod max(..) är inte statisk, och måste därmed anropas från ett objekt...
Så du får väl skriva typ:

Class1 tmp;
tmp.max(n);

Ser fö. inte varför du slänger in sakerna i ett objekt om du inte tänker använda dem som sådana, alltså, varför slänga in en main metod i ett objekt ex?

Visa signatur

The difference between stupidity and genius - the latter has limits

Permalänk
Medlem

Precis som föregående talare sagt behöver du ett objekt för att anropa en icke-statisk metod. En annan lösning än den som Zevon föreslagit är att göra din max metod statisk.

public static int max(int[] v)

Permalänk
Medlem

TIPS: Använd ALDRIG åäö i serverkoden eller mappnamn, det kan orsaka problem (der gäller givetvis inte kommentarer eller strängars värde). Även om det kanske ungerar så är det alltid bra att ta det säkra före det osäkra

Visa signatur

/ KirkaN

There are only 10 types of people in the world: Those who understand binary and those who don't.

Permalänk
Medlem

Okej, jag provade Halks tips om att göra min max statisk, och då löste sig allting
Zevon, jag förstår inte exakt vad du menar, men min uppgift var att
"Skriv en funktion int max(int[] v) som tar en vektor av heltal och som returnerar det största talet i vektorn."
Och jag tycker att jag har gjort just detta.
Tackar för svaren