Доработать операторы сравнения - C#

Узнай цену своей работы

Формулировка задачи:

namespace BuilderScripts
{
    public partial class Form1
    {
        private static int nextId = 0;
 
        public struct Link
        {
            public readonly SOutput Output;
            public readonly SInput Input;
 
            public Link(SOutput Output, SInput Input)
            {
                this.Input = Input;
                this.Output = Output;
            }
        }
 
        public struct SInput
        {
            private readonly int ID;
            public readonly string name;
 
            public SInput(string name)
            {
                ID = nextId;
                this.name = name;
                nextId++;
            }
 
            public override int GetHashCode()
            {
                int hash = 0;
                for (int i = 0; i < name.Length; i++) hash += name[i];
                return hash << ID;
            }
            public static bool operator ==(SInput c1, SInput c2)
            {
                if (c1.ID == c2.ID && c1.name == c2.name)
                    return true;
                return false;
            }
            public static bool operator !=(SInput c1, SInput c2)
            {
                if (c1.name != c2.name)
                    return true;
                return false;
            }
        }
        public struct SOutput
        {
            private readonly int ID;
            public readonly string name;
 
            public SOutput(string name)
            {
                ID = nextId;
                this.name = name;
                nextId++;
            }
 
            public override int GetHashCode()
            {
                int hash = ID * name.Length;
                for (int i = 0; i < name.Length; i++) hash += name[i];
                return hash;
            }
            public static bool operator ==(SOutput c1, SOutput c2)
            {
                if (c1.ID == c2.ID && c1.name == c2.name)
                    return true;
                return false;
            }
            public static bool operator !=(SOutput c1, SOutput c2)
            {
                if (c1.name != c2.name)
                    return true;
                return false;
            }
        }
    }
}

Решение задачи: «Доработать операторы сравнения»

textual
Листинг программы
public static bool operator ==(SInput c1, SInput c2)
{
   if (c1.ID == c2.ID && c1.name == c2.name)
     return true;
     return false;
}
public static bool operator !=(SInput c1, SInput c2)
{
    return !(c1 == c2);
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 3.636 из 5