Permalänk
Medlem

Fel i kod?? C#

• I denna uppgift ska du skriva en komplett propertie.
• Propertien ska bara lägga till värden som är större än eller lika med 0.
• Du får fältet nedan som hjälp:

private int age;

namespace ConsoleApplication3
{
class Program
{
static void Main(string[] args) //Main är understruket med blått?
{
}

private int age;
public int Age
{
get { return this.age;
}
set
{
if (value >= 0) age = value;
}
}

} }

Error 1 'ConsoleApplication3.Program.Main(string[])' must declare a body because it is not marked abstract, extern, or partial C:\Users\Linus\documents\visual studio 2010\Projects\ConsoleApplication3\ConsoleApplication3\Program.cs 11 21 ConsoleApplication3

Permalänk
Medlem

Jag har aldrig skrivit c#-kod, Men kan det vara så att kompilatorn klagar på att du inte har någon kod i main()-metoden?

Permalänk

Din main är tom och saknar returvärde.

Visa signatur

Insert funny joke here

Permalänk
Skrivet av Slaktardej:

Din main är tom och saknar returvärde.

Dock så behöver han inte ett returvärde i main.

Visa signatur
Permalänk
Medlem

privatr int age är utanför programmet o krockar med nästa deklaration. private age kan inte ha samma namn som public age, den får heta typ pAge eller _Age

// LZ

Permalänk
Avstängd

litet m på Main
Edit, sorry, är nog bara så i Java.

Visa signatur
Permalänk
Medlem
Skrivet av izeman82:

• I denna uppgift ska du skriva en komplett propertie.
• Propertien ska bara lägga till värden som är större än eller lika med 0.
Du får fältet nedan som hjälp:

private int age;

Den är inte så i min kod!

namespace ConsoleApplication3
{
class Program
{
static void Main(string[] args)
{
}

private int age;
public int Age
{
get { return this.age;
}
set
{
if (value >= 0) age = value;
}
}

} }

Är nybörjare på sånt här!

Permalänk
Medlem

set gör ingenting

Visa signatur

Carmilla: Intel 2600k, 8gb RAM 1600mhz, SSD EVO840, gtx760,. Workstation/Spelmaskin OS:Windows 8.1
Marcilla: AMD A4, 4gb RAM 1600mhz NAS/SQL/HTPC, OS: Linux MINT

Permalänk
Avstängd
Skrivet av izeman82:

Den är inte så i min kod!

namespace ConsoleApplication3 { class Program { static void Main(string[] args) { } private int age; public int Age { get { return this.age; } set { if (value >= 0) age = value; } } } }

Är nybörjare på sånt här!

Använda "[ CODE ][ /CODE ]" kod taggar när du postar kod, lättare att läsa då.

Du kan inte deklarera en field-variable som heter age och en som heter Age

Visa signatur
Permalänk
Avstängd
Skrivet av ZOiDVOiD:

set gör ingenting

set setter age då value => 0

Visa signatur
Permalänk
Medlem

C# har inga problem att skilja på "age" och "Age", så det skall fungera. (Se exempelMSDN)

Nästan On Topic ( ):
Notera att "Main" är static, så du kan inte komma åt din property utan att skapa en instans av "Program".

Visa signatur

as far as we can tell, the massacre went well...

Permalänk
Avstängd
Skrivet av jovnas:

C# har inga problem att skilja på "age" och "Age", så det skall fungera. (Se exempelMSDN)

Nästan On Topic ( ):
Notera att "Main" är static, så du kan inte komma åt din property utan att skapa en instans av "Program".

Haha, oh well, ja det kan man visst... men det är emot convention

Visa signatur
Permalänk
Medlem
Skrivet av Ryuk00:

Haha, oh well, ja det kan man visst... men det är emot convention

Beror ju lite på vems convention man följer.
I mina egna projekt följer jag ReSharpers default-convention, med "_"-prefix.
På jobbet följer vi Microsofts interna rekommendation (från 2005?), utan prefix;
"Do not use a prefix for member variables (_, m_, s_, etc.)." (källa)

Visa signatur

as far as we can tell, the massacre went well...

Permalänk
Avstängd
Skrivet av jovnas:

Beror ju lite på vems convention man följer.
I mina egna projekt följer jag ReSharpers default-convention, med "_"-prefix.
På jobbet följer vi Microsofts interna rekommendation (från 2005?), utan prefix;
"Do not use a prefix for member variables (_, m_, s_, etc.)." (källa)

Tror det kommer från C från början, inte säker.

Visa signatur
Permalänk
Hedersmedlem
Skrivet av izeman82:

Error 1 'ConsoleApplication3.Program.Main(string[])' must declare a body because it is not marked abstract, extern, or partial C:\Users\Linus\documents\visual studio 2010\Projects\ConsoleApplication3\ConsoleApplication3\Program.cs 11 21 ConsoleApplication3

Finns det inte en hjälpknapp i Visual Studio så att du kan få mer information om problemet och hur det åtgärdas? Det finns det i alla fall i min VS och den ger ofta väldigt bra hjälp, antingen så att man direkt förstår vad problemet är, eller nyttig information för att söka vidare efter en lösning. Ett annat hett tips är att klistra in hela felmeddelandet i Googles sökruta.

Visa signatur

Använd gilla för att markera nyttiga inlägg!

Permalänk
Medlem
Skrivet av izeman82:

'ConsoleApplication3.Program.Main(string[])' must declare a body because it is not marked abstract, extern, or partial

Jag gissar på att du har ett semikolon efter din Main.

private static void Main(string[] args); // <-- ett semikolon här ger det felmeddelandet du angav.

Visa signatur

as far as we can tell, the massacre went well...

Permalänk
Medlem

Du måste skriva något i Main, det är där ditt program startar! Annars händer inget. Prova det här:

namespace ConsoleApplication3 { class Program { static void Main(string[] args) //Main är understruket med blått? { Console.write(Age); //Borde ge 0 Age = 3; Console.write(Age); //Borde ge 3 Age = -1; Console.write(Age); //Borde ge 3 } private int age; public int Age { get { return this.age; } set { if (value >= 0) age = value; } } } }

edit: Jag har inte provat koden!

Visa signatur

~. Citera så jag hittar tillbaka .~

Permalänk
Medlem

Jag kan inte hitta något fel på din kod. Har snabbtestat i LINQPad och den ser inget problem den heller...

Kan det vara att den kompilator du använder kräver att du gör både din klass och Main-metoden public?

Visa signatur

5950X, 3090

Permalänk
Medlem
Skrivet av jovnas:

Jag gissar på att du har ett semikolon efter din Main.

private static void Main(string[] args); // <-- ett semikolon här ger det felmeddelandet du angav.

Det verkar troligt. Ett semikolon och ingen body. Om body också finns med så blir det annat felmeddelande; "Invalid token '{' in class, struct, or interface member declaration"

Visa signatur

5950X, 3090