Я хотел бы использовать модификатор внутреннего доступа в свойствах Length и Width, но это невозможно. Это вызывает ошибку. Тогда в основном методе невозможно получить значение из этих свойств, когда я хочу использовать метод WriteLine. Вопрос в том, почему? Я нахожусь в том же собрании, или?Такая же сборка, но внутренний accessor вызывает ошибку
namespace AbstractPolygon
{
abstract internal class Polygon
{
public double Length { get; protected set; }
public double Width { get; protected set; }
abstract internal double GetArea();
}
internal class Rectangle:Polygon
{
internal Rectangle(double length,double width)
{
Length = length;
Width = width;
}
override internal double GetArea()
{
return Length * Width;
}
}
internal class Square:Polygon
{
internal Square(double length)
{
Length = length;
}
override internal double GetArea()
{
return Length * Length;
}
}
internal class Program
{
static void Main(string[] args)
{
Rectangle objRectangle = new Rectangle(15,5);
Square objSquare = new Square(97);
Console.WriteLine("Rectangle area of length:{0} and width:{1} is: {2}",
objRectangle.Length, objRectangle.Width, objRectangle.GetArea());
Console.WriteLine("Square area of length:{0} is: {1}", objSquare.Length,
objSquare.GetArea());
}
}
}
Какая ошибка? –
Если класс является 'internal', их члены также будут внутренними, даже если они объявлены как' public', так как класс в целом не будет отображаться в другой сборке. –
ok.but точка в том, что я не могу написать: public double Length {INTERNAL get; защищенный набор; } public double Width {INTERNAL get; защищенный набор; } - эти INTERNALS вызывают ошибку - в основном методе eroror пишет, что невозможно получить значение из свойств из-за модификатора доступа - похоже, что класс Polygon и последний класс Program находятся в другой сборке – fio