Я просматривал это в течение нескольких часов и не могу найти причину, по которой ничего не выводится. Никаких ошибок не указано, так что это что-то в самом коде. Может кто-нибудь, пожалуйста, посмотрите на это и, возможно, поймайте то, что я не вижу? Благодаря!Нужен второй комплект глаз на код C#
namespace ConsoleApplication8
{
class Tape
{
public Tape(int length, int width)
{
len = length;
wid = width;
}
public int len { get; set; }
public int wid { get; set; }
public override string ToString()
{
return string.Format("{0}\nLength: {1}\nWidth: {2}", GetType(), len, wid);
}
}
class VideoTape : Tape
{
public int PlayTime { get; set; }
public VideoTape(int length, int width, int playTime)
: base(len, wid)
{
PlayTime = playTime;
}
public override string ToString()
{
return string.Format("{0}\nPlay Time: {1}", base.ToString(), PlayTime);
}
}
class AdhesiveTape : Tape
{
private int _stickiness;
public AdhesiveTape(int length, int width, int stickiness)
: base(length, width)
{
Stickiness = stickiness;
}
public int Stickiness
{
get { return _stickiness; }
set
{
if (value >= 1 && value <= 10)
_stickiness = value;
else
_stickiness = 0;
}
}
public override string ToString()
{
return string.Format("{0}\nStickiness: {1}",
base.ToString(), (Stickiness == 0) ? "Invalid Input" : Stickiness.ToString());
}
}
class Test
{
static void Main(string[] args)
{
var tape = new Tape(100, 10);
var videoTape = new VideoTape(50, 5, 200);
var adhesiveTape = new AdhesiveTape(500, 8, 8);
Console.WriteLine(tape);
Console.WriteLine(videoTape);
Console.WriteLine(adhesiveTape);
Console.ReadLine();
}
}
}
Существует ошибка компиляции для ': base (len, wid)', она должна быть 'base (length, width)' –
точно, есть ошибка компиляции в использовании базового конструктора ... тогда она работает нормально –
@YacoubMassad Я не уверен, что это ошибка компилятора, так как VideoTape наследует от Tape, а 'len' и' wid' - допустимые поля этого класса, но это почти наверняка опечатка. – Abion47