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(); }
}
}
}