Fehler 1 Inkonsistenter accessibility: return type ist weniger zugreifbar als Methode
Wenn ich Baue, VS show error. Das ist mein code:
public Composite buildComposite(ComboBox subs, ComboBox bas)
{
int count = 0;
Composite a = new Composite();
if (subs.SelectedItem != null)
{
foreach (Substance d in listSubstance)
{
if (String.Compare(d.notation, subs.Text) == 0)
{
count++;
a.subs = new Substance(d);
break;
}
}
}
if (bas.SelectedItem != null)
{
foreach (Base g in listBase)
{
if (String.Compare(g.notation, bas.Text) == 0)
{
count++;
a.bas = new Base(g);
break;
}
}
}
if (count > 0)
{
a.equilibrium();
a.settypesubs(arrayDefinition);
return a;
}
else
return null;
}
Dies ist mein Fehler:
Fehler 1 Inkonsistenter accessibility: return type 'Project_HGHTM9.Composite' ist weniger zugreifbar als Methode " Project_HGHTM9.Form1.buildComposite(System.Windows.Formen.ComboBox System.Windows.Formen.ComboBox)' c:\users\nguyen\documents\visual studio 2013\Projects\Project_HGHTM9\Project_HGHTM9\Form1.cs 172 26 Project_HGHTM9
Ihre
Die Fehlermeldung ist ziemlich selbsterklärend. Was bout es Sie nicht verstehen?
Sie nicht mehr zurück können, eine Art von einer öffentlichen Methode, die nicht öffentlich sich.
Composite
Klasse sollte public sein. Gehen Sie voran und ändernDie Fehlermeldung ist ziemlich selbsterklärend. Was bout es Sie nicht verstehen?
Sie nicht mehr zurück können, eine Art von einer öffentlichen Methode, die nicht öffentlich sich.
InformationsquelleAutor user3453838 | 2014-06-04
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ihre
Composite
Klasse ist nichtpublic
. Sie können nicht zurück, ein nicht-öffentlicher Art von einer öffentlichen Methode.Wenn Sie nicht angeben, eine Zugänglichkeit für ein nicht-geschachtelte Klasse
internal
wird standardmäßig verwendet. Hinzufügenpublic
zu IhremComposite
Klasse definition:Alternativ, wenn
buildComposite
nicht müssen zupublic
(was bedeutet, es ist nur intern von der form), dann könnte man die Methodeprivate
:InformationsquelleAutor D Stanley
Sie versuchen, um return eine Instanz der Klasse
Composite
einer öffentlichen Methode, aberComposite
ist nicht öffentlich und kann daher nicht zurückgegeben werden, wie jede aufrufende code kann nicht wissen, etwas über dieComposite
Klasse, wie es nicht sehen.Machen Sie Ihre
Composite
Klasse öffentlich.oder machen Sie Ihre Methode, die sich wieder Ihre
Composite
haben die gleiche Sichtbarkeit wie Ihre Klasse (wahrscheinlich privat):Welche dieser angemessen ist, hängt davon ab, ob Sie benötigen, rufen Sie die Methode (oder Klasse) von außerhalb Ihres aktuellen Baugruppe.
Standardmäßig eine Klasse ist in der Regel als 'versteckt', wie es sein kann, so dass der private für Klassen. Lesen Sie mehr über die Standard-Sichtbarkeit hier
InformationsquelleAutor Sam Holder
Ihre benutzerdefinierten Typ, Composite, ist derzeit weniger zugänglich sind als Ihre Methode buildComposite. Für die anderen Klassen zu sehen, diese öffentliche Methode, Sie muss auch den Zugang der öffentlichkeit zu den Composite-Klasse/struct.
InformationsquelleAutor GEEF
wenn
Composite
wurde definiert, nicht erreichbar/unveränderliche code wieclass Composite
könnten Sie versuchen, indem SiebuildComposite
als interne. Wieinternal Composite buildComposite(ComboBox subs, ComboBox bas)
. Auf diese Weise wird es noch leichter zugänglich, indem Sie die Methode private.InformationsquelleAutor KSK