When I'm building, VS show error. This is my 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; }
This is my error:
Error 1 Inconsistent accessibility: return type 'Project_HGHTM9.Composite' is less accessible than method 'Project_HGHTM9.Form1.buildComposite(System.Windows.Forms.ComboBox, System.Windows.Forms.ComboBox)' c:\users\nguyen\documents\visual studio 2013\Projects\Project_HGHTM9\Project_HGHTM9\Form1.cs 172 26 Project_HGHTM9
Your Composite
class is not public
. You can't return a non-public type from a public method.
If you don't specify an accessibility for a non-nested class then internal
is used by default. Add public
to your Composite
class definition:
public class Composite { ...
Alternatively, if buildComposite
doesn't need to be public
(meaning it's only used internally by the form), then you could make the method private
or internal
as well:
private Composite buildComposite(ComboBox subs, ComboBox bas) { ....
you are trying to return an instance of class Composite
from a public method, but Composite
is not public therefore can't be returned as any calling code cannot know anything about the Composite
class as it cannot see it.
Make your Composite
class public.
public class Composite{...}
or make your method which is returning your Composite
have the same visibility as your class (probably private):
private Composite buildComposite(ComboBox subs, ComboBox bas)
Which of these is appropriate will depend on whether you need to call the method (or use the class) from outside your current assembly.
By default a class is usually as 'hidden' as it can be, so private for classes. Read more about the default visibility here
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With