valor tipo que parámetro método menos incoherencia error devuelto cs0050 accesible accesibilidad c# properties

c# - que - Accesibilidad incoherente: el tipo de propiedad es menos accesible



incoherencia de accesibilidad el tipo de parámetro es menos accesible que el método (3)

Por favor alguien puede ayudar con el siguiente error:

Accesibilidad incoherente: el tipo de propiedad ''Test.Delivery'' es menos accesible que la propiedad ''Test.Form1.thelivery''

private Delivery thedelivery; public Delivery thedelivery { get { return thedelivery; } set { thedelivery = value; } }

No puedo ejecutar el programa debido al mensaje de error de incoherencia.

Aquí está mi clase de entrega:

namespace Test { class Delivery { private string name; private string address; private DateTime arrivalTime; public string Name { get { return name; } set { name = value; } } public string Address { get { return address; } set { address = value; } } public DateTime ArrivlaTime { get { return arrivalTime; } set { arrivalTime = value; } } public string ToString() { { return name + address + arrivalTime.ToString(); } } } }


La Delivery su clase no tiene modificador de acceso, lo que significa que su valor predeterminado es internal . Si luego intenta exponer una propiedad de ese tipo como public , no funcionará. Su tipo (clase) debe tener el mismo o más alto acceso que su propiedad.

Más sobre los modificadores de acceso: http://msdn.microsoft.com/en-us/library/ms173121.aspx


Su clase de Delivery es interna (la visibilidad predeterminada para las clases), sin embargo, la propiedad (y presumiblemente la clase que lo contiene) son públicas, por lo que la propiedad es más accesible que la clase de Delivery . thelivery hacer pública la Delivery o restringir la visibilidad de la propiedad de thelivery .


haga que su clase public acceso public , simplemente agregue public palabra clave public enfrente de su nombre de clase

namespace Test { public class Delivery { private string name; private string address; private DateTime arrivalTime; public string Name { get { return name; } set { name = value; } } public string Address { get { return address; } set { address = value; } } public DateTime ArrivlaTime { get { return arrivalTime; } set { arrivalTime = value; } } public string ToString() { { return name + address + arrivalTime.ToString(); } } } }