nicht enthalten einen Konstruktor mit 3 Argumenten
bitte Geduld mit mir, als ich bin nur zu lernen, C#. Nur Herumspielen mit C# habe ich beschlossen zu kommen mit einer Inventar-system zu testen, aber ich habe ein problem in meinem script:
using System;
using System.Collections.Generic;
public class Item
{
public String name;
public int pesos;
public int getPesos()
{
return pesos;
}
public String getName()
{
return name;
}
}
public class statuseffect
{
statuseffect(string Effect,int Amount,int Duration)
{
string effect = Effect;
int amount = Amount;
int duration = Duration;
}
}
public class Potion : Item
{
public int hpeffect;
public int mpeffect;
List<statuseffect> effects = new List<statuseffect>();
public Potion(int hp,int mp)
{
hpeffect = hp;
mpeffect = mp;
}
public void addEffect(statuseffect eff)
{
effects.Add(eff);
}
}
class game
{
public static void Main()
{
Potion healthPotion = new Potion(200,50);
healthPotion.pesos = 23;
Console.WriteLine(healthPotion.hpeffect);
statuseffect slow = new statuseffect("slow",10,30);
}
}
in der letzten Zeile der compiler sagt mir, dass statuseffect nicht enthalten einen Konstruktor mit 3 Argumenten. Was ich sagen kann, es enthält 3 Argumente. Gibt es etwas, was ich hier vermisst?
als eine Randnotiz. wenn Ihr irgendwelche Kommentare oder Vorschläge für mein Skript, das wäre auch hilfreich.
- Wenn Sie gerade erst anfangen zu Programmieren, die ich eifrig zu bleiben, der strengen Namenskonvention: msdn.microsoft.com/en-us/library/xzf533w0(v=vs. 71).aspx (jetzt Ihre Methoden beginnen mit Kleinbuchstaben, so hat statuseffect-Klasse public class Variablen sollte nicht fiels - machen Sie als Eigenschaften, die Leerzeichen auch Fragen)
- Sie müssen beginnen, Lesen ein gutes Buch über C# und OOP
- ja, dies ist mein zweiter Tag auf C# so ich habe noch eine Menge zu lernen. Jedes Buch, das Anregungen sind willkommen.
- normalerweise lernen die Studierenden, oop-Konzepte in C++, aber wenn Sie lernen, OOP und C# - Sprache dann "Professional C# von WROX" ist am besten
Du musst angemeldet sein, um einen Kommentar abzugeben.
Konstruktor ist
private
und somit "unsichtbar" für code außerhalb der Klasse selbst. Versuchen Sie das keywordinternal
vor dem Konstruktor. Oder, wenn es braucht, um sichtbar zu sein von anderen Projekten, Beurteilungpublic
statt.Weiteres Problem: In Ihrer Klasse
statuseffect
erklären Sie drei lokalen variable im Konstruktor. Diese variable ist nur im Rahmen der Konstruktor. Sie verschieben müssen, dass Ihre Erklärungen aus dem Konstruktor (die werden dann von Instanz Felder der Klasse). Der Konstruktor kann noch Ihnen zuweisen.Ihrem Konstruktor muss markiert werden
public
.Als
c#
ist insbesondere ein Objectt orientierte Sprache, so dass jede Sache, die Sie erklären, in einer Klasse ohne ein zugriffsspezifizierer gilt es als privat, indem der compiler. So erklären Sie Ihren Konstruktorpublic
, dass wird den Fall zu lösenMachen Sie Ihren Konstruktor public. Wenn Sie nicht angeben, eine access-specifier standardmäßig privat, d.h. es kann nur verwendet werden, innerhalb Ihrer Klasse. Macht es der öffentlichkeit zugänglich macht von außen.
Außerdem etwas tun, mit diesen Variablen, Sie sind von keinerlei nutzen.