Перегружаемые бинарные операторы С# (true и false)
Помогите пожайлуста с заданием: перегрузить операторы в таких случаях : true – проверить ли ровны два массива char. Но проблема в том, что я не могу передать два массива в перегрузку операторов и не могу придумать как обойтись без этого. Заранее благодарна Вам!
Мой код:
class MyString
{
private char[] words;
public char[] Words { get; set; }
private int length;
//прочие методы
public static bool operator true(MyString op1, MyString op2)
{
for (int i=0;i<op1.words.Length;i++)
{
if (op1.words[i] == op2.words[i])
{
return true;
}
}
return false;
}
public static bool operator false(MyString op1, MyString op2)
{
for (int i = 0; i < op1.words.Length; i++)
{
if( op1.words[i] != op2.words[i])
{
return true;
}
}
return false;
}
Ответы (1 шт):
Автор решения: Sergey
→ Ссылка
class MyString : IEnumerable<char>
{
public char[] Words { get; set; }
public static bool operator ==(MyString obj1, MyString obj2) => obj1.SequenceEqual(obj2);
public static bool operator !=(MyString obj1, MyString obj2) => !obj1.SequenceEqual(obj2);
public IEnumerator<char> GetEnumerator() => (Words as IEnumerable<char>).GetEnumerator();
IEnumerator IEnumerable.GetEnumerator() => GetEnumerator();
}