Реализация интерфейса icomparable в программу
Я уже начал это делать, но мне действительно трудно, я должен изменить кошелек класса, чтобы реализовать интерфейс ICloneable . создайте основную программу, которая продемонстрирует, что метод кошелька Clone работает.
using System; using System.Collections; namespace TestingProject { /// <summary> /// A coin with a monetary value. /// </summary> public class Coin { /// Constructs a coin. /// @param aValue the monetary value of the coin /// @param aName the name of the coin public Coin(double aValue, String aName) { value = aValue; name = aName; } /// Gets the coin value. /// @return the value public double GetValue() { return value; } /// Gets the coin name. /// @return the name public String GetName() { return name; } public override bool Equals(Object otherObject) { Coin other = (Coin)otherObject; return name==other.name && value == other.value; } // C# requirement: // since we override Equals, MUST also override GetHashCode ( !! ) public override int GetHashCode() { return base.GetHashCode (); } private double value; private string name; } } using System; using System.Collections; namespace TestingProject { /// <summary> /// A purse holds a collection of coins. /// </summary> public class Purse : ICloneable { /// Constructs an empty purse. public Purse() { coins = new ArrayList(); Purse MyPurse = (Purse)MemberwiseClone(); } /// Add a coin to the purse. /// @param aCoin the coin to add public void Add(Coin aCoin) { coins.Add(aCoin); } /// Get the total value of the coins in the purse. /// @return the sum of all coin values public double GetTotal() { double total = 0; for (int i = 0; i < coins.Count; i++) { Coin aCoin = (Coin)coins[i]; total = total + aCoin.GetValue(); } return total; } public Object Clone() { return MemberwiseClone(); } private ArrayList coins; } }
Что я уже пробовал:
Я запустил программу, но я просто застрял и запутался
Richard Deeming
Название вашего вопроса говорит о том, что вы пытаетесь реализовать IComparable
, но тело вопроса говорит, что вы пытаетесь реализовать ICloneable
- И что же это?