Несогласованная доступность: тип свойства менее доступен
Пожалуйста, кто-то может помочь со следующей ошибкой:
Непоследовательная доступность: тип свойства "Test.Delivery" менее доступен, чем свойство "Test.Form1.thelivery"
private Delivery thedelivery;
public Delivery thedelivery
{
get { return thedelivery; }
set { thedelivery = value; }
}
Я не могу запустить программу из-за сообщения об ошибке несоответствия.
Вот мой класс доставки:
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(); }
}
}
}
Ответы
Ответ 1
Объявите ваш класс с модификатором public
доступа, добавив ключевое слово public
перед именем класса
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(); }
}
}
}
Ответ 2
В вашем классе Delivery
нет модификатора доступа, что означает, что он по умолчанию равен internal
. Если затем попытаться выставить свойство такого типа как public
, оно не будет работать. Ваш тип (класс) должен иметь тот же самый или более высокий доступ к вашему свойству.
Подробнее о модификаторах доступа: http://msdn.microsoft.com/en-us/library/ms173121.aspx
Ответ 3
Ваш класс Delivery
является внутренним (видимость по умолчанию для классов), однако свойство (и предположительно содержащий класс) является общедоступным, поэтому свойство более доступно, чем класс Delivery
. Вам нужно либо сделать Delivery
общедоступным, либо ограничить видимость свойства thelivery
.