diff --git a/CourseApp.Tests/AnimalsTest.cs b/CourseApp.Tests/AnimalsTest.cs index e871ddc..215cbe3 100644 --- a/CourseApp.Tests/AnimalsTest.cs +++ b/CourseApp.Tests/AnimalsTest.cs @@ -56,5 +56,18 @@ public void ToStringTesting() Assert.Equal("Собака по имени White. Её возраст - 5, пол - женский", animals[0].ToString()); Assert.Equal("Кот по имени Black. Его возраст - 2, пол - мужской", animals[1].ToString()); } + + [Fact] + public void ToCompareTest() + { + Animals[] animals = new Animals[3]; + animals[0] = new Dog("White", 5, "female"); + animals[1] = new Cat("Black", 2, "male"); + animals[2] = new Dog("Black"); + if (animals[0].CompareTo(animals[1]) == 1 && animals[1].CompareTo(animals[2]) == 0) + { + Assert.True(true); + } + } } } \ No newline at end of file diff --git a/CourseApp.Tests/CourseApp.Tests.csproj b/CourseApp.Tests/CourseApp.Tests.csproj index 21e7368..5815955 100644 --- a/CourseApp.Tests/CourseApp.Tests.csproj +++ b/CourseApp.Tests/CourseApp.Tests.csproj @@ -1,7 +1,7 @@ - netcoreapp3.0 + netcoreapp 3.1 True 1573,1591,1701;1702;1705 false @@ -27,4 +27,4 @@ - \ No newline at end of file + diff --git a/CourseApp/Animals.cs b/CourseApp/Animals.cs index 98ee636..c73ecd8 100644 --- a/CourseApp/Animals.cs +++ b/CourseApp/Animals.cs @@ -3,6 +3,7 @@ namespace CourseApp { + public abstract class Animals : IComparable, IMovable public abstract class Animals { private string sex; @@ -58,5 +59,30 @@ public virtual void AgeUp() { this.Age++; } + + public virtual void Move() + { + Console.WriteLine("Животное идёт"); + } + + public int CompareTo(object o) + { + Animals animal = o as Animals; + if (animal != null) + { + if (animal.Name == this.Name) + { + return 0; + } + else + { + return 1; + } + } + else + { + throw new Exception("Невозможно сравнить два объекта"); + } + } } } \ No newline at end of file diff --git a/CourseApp/Cat.cs b/CourseApp/Cat.cs index f740b3e..31528ba 100644 --- a/CourseApp/Cat.cs +++ b/CourseApp/Cat.cs @@ -42,6 +42,11 @@ public override int Age } } + public override void Move() + { + Console.WriteLine("Кот крадётся"); + } + public override string RunningSpeed() { return "Средняя скорость домашнего кота во время бега - 43 - 45 км/ч, максимальная - до 50 км/ч"; @@ -56,6 +61,7 @@ public override void Info() { Console.WriteLine(this.ToString()); Console.WriteLine(this.RunningSpeed()); + this.Move(); } } } \ No newline at end of file diff --git a/CourseApp/CourseApp.csproj b/CourseApp/CourseApp.csproj index c941549..4119573 100644 --- a/CourseApp/CourseApp.csproj +++ b/CourseApp/CourseApp.csproj @@ -2,7 +2,7 @@ Exe - netcoreapp3.0 + netcoreapp 3.1 True 1573,1591,1701;1702;1705; @@ -20,4 +20,4 @@ - \ No newline at end of file + diff --git a/CourseApp/Dog.cs b/CourseApp/Dog.cs index e380c5d..482363f 100644 --- a/CourseApp/Dog.cs +++ b/CourseApp/Dog.cs @@ -56,6 +56,7 @@ public override void Info() { Console.WriteLine(this.ToString()); Console.WriteLine(this.RunningSpeed()); + this.Move(); } } } \ No newline at end of file diff --git a/CourseApp/IComparable.cs b/CourseApp/IComparable.cs new file mode 100644 index 0000000..93541ff --- /dev/null +++ b/CourseApp/IComparable.cs @@ -0,0 +1,9 @@ +using System; + +namespace CourseApp +{ + public interface IComparable + { + int CompareTo(object o); + } +} \ No newline at end of file diff --git a/CourseApp/IMovable.cs b/CourseApp/IMovable.cs new file mode 100644 index 0000000..e1de7d7 --- /dev/null +++ b/CourseApp/IMovable.cs @@ -0,0 +1,9 @@ +using System; + +namespace CourseApp +{ + public interface IMovable + { + void Move(); + } +} \ No newline at end of file diff --git a/CourseApp/Program.cs b/CourseApp/Program.cs index 8840d95..a904eb7 100644 --- a/CourseApp/Program.cs +++ b/CourseApp/Program.cs @@ -57,9 +57,9 @@ public static void Main(string[] args) Console.WriteLine("Задание В:"); Console.WriteLine("=========="); foreach (var item in taskBRes) - { - Console.WriteLine($"y1 = {item}"); - } + { + Console.WriteLine($"y1 = {item}"); + } Console.WriteLine("=========="); Animals[] animals = new Animals[2]; @@ -70,6 +70,15 @@ public static void Main(string[] args) animal.Info(); Console.WriteLine(); } + + if (animals[0].CompareTo(animals[1]) == 0) + { + Console.WriteLine("Животные имеют одинаковую кличку"); + } + else + { + Console.WriteLine("Животные имеют разные клички"); + } } } }