2016-04-24 8 views
-1

Ich versuche, eine Klasse in C# VS2005 wie folgt zu erstellen:C# IList Parameter bewirkt, dass inkonsistente Zugänglichkeit

public class MyClass 
{ 
     private string reference; 
     private IList<MyClassItem> items; 

     public MyClass(string reference, IList<MyClassItem> items) // error here 
     { 
      this.reference = reference ; 
      this.items = items; 
     } 

     public string Reference { get { return this.reference ; } set { this.reference = value; } } 
     public IList<MyClassItem> Items { get { return this.items; } set { this.items = value; } } // error line 
} 

public class MyClassItem 
{ 
     private string id; 
     private string name; 

     public MyClassItem(string id, string name) 
     { 
      this.id= id; 
      this.name= name; 
     } 
     public string Id{ get { return this.id; } set { this.id= value; } } 
     public string Name { get { return this.name; } set { this.name= value;}} 

} 

ich Fehler habe:

Inconsistent accessibility: parameter type ' System.Collections.Generic.IList<Library.Model.MyClassItem> ' is less accessible than method ' Library.Model.MyClass.Jurnal(string, System.Collections.Generic.IList<Library.Model.MyClassItem>) ' D:...\MyClass.cs 15 16 Library Error 4 Inconsistent accessibility: property type ' System.Collections.Generic.IList<Library.Model.MyClassItem> ' is less accessible than property 'Library.Model.MyClass.Items' D:...\MyClass.cs 28 34 Library

+5

Sind Sie absolut * sicher * das 'MyClassItem' öffentlich ist, wie Sie es gezeigt haben? Können Sie ein [mcve] bereitstellen, das das Problem demonstriert? Sind diese Klassen überhaupt verschachtelt? –

+0

Der veröffentlichte Code verursacht keine Fehler. Sie haben beim Kopieren/Einfügen oder bei der Kürzung des Codes einen Fehler gemacht. –

+0

@JonSkeet direkt auf ich verpasste "öffentlich" in MyClassItem in meinem Code ... danke Jungs haben einen schönen Tag – Jackie

Antwort

0

Das einzige Problem, das ich ist vorstellen kann, dass Sie definiert MyClassItem als Teil der anderen Klasse, die privaten Ist, geschützt oder intern, zum Beispiel:

internal class MyOtherClass 
{ 
    //MyOtherClass properties and functions 

    public class MyClassItem 
    { 
    } 

} 

Bewegen Sie einfach MyClassItem direkt in den Namespace und das sollte das Problem lösen

Verwandte Themen