Решаю данную задачу https://ulearn.me/Course/basicprogramming2/Praktika_Readonly_bytes__1a5e39b3-9b7f-46c5-bb3c-ab024f2c8714
По заданию создал класс ReadonlyBytes
using System;
using System.Collections;
using System.Collections.Generic;
using System.Text;
namespace hashes
{
public class ReadonlyBytes : IEnumerable<byte>
{
private readonly byte[] byteArray;
private readonly int hashCode;
public int Length { get; }
public ReadonlyBytes(params byte[] array)
{
if (array == null)
{
throw new ArgumentNullException();
}
Length = array.Length;
byteArray = array;
hashCode = GetHashCode();
}
public override string ToString()
{
var result = new StringBuilder("[");
result.Append(String.Join(", ", byteArray));
result.Append("]");
return result.ToString();
}
public override int GetHashCode()
{
UInt64 result = 0;
UInt64 p = 16777619;
var shift = Length / 50;
for (var i = 0; i < Length; i += 1 + shift)
{
result ^= (uint)byteArray[i];
result = (result * p) % int.MaxValue;
}
return (int)(result);
}
public override bool Equals(object obj)
{
if (ReferenceEquals(null, obj)) return false;
if (ReferenceEquals(this, obj)) return true;
var castedObj = obj as ReadonlyBytes;
if (this.hashCode != castedObj.hashCode || this.Length != castedObj.Length)
{
return false;
}
else
{
for (var i = 0; i < this.Length; i++)
if (this[i] != castedObj[i])
return false;
return true;
}
}
public byte this[int index] => byteArray[index];
public IEnumerator<byte> GetEnumerator()
{
for (var i = 0; i < Length; i++)
yield return byteArray[i];
}
IEnumerator IEnumerable.GetEnumerator()
{
return GetEnumerator();
}
}
}
Все тесты данный код проходит, но при попытке послать данное решение выводит лог
Как минимум один из тестов не пройден! Название теста:
HashCodeDiffers_IfArraysDiffersOnTheLastElementOnly Сообщение:
Expected: not equal to 0 But was: 0
Стек вызовов: at checking.ReadonlyBytes_HiddenTests.HashCodeDiffers_IfArraysDiffersOnTheLastElementOnly() Когда может возникать эта ошибка? И как это можно исправить?
Как создать кастомный вариант checkbox в виде кнопки? Был бы благодарен примеру и краткими объяснениями
Возможно глупый вопросМожно ли преобразовать один enum в другой? К пример Namespace1
Можно ли такое сделать? Есть поле, и на нем должен появляться 3д объект, само поле в 2д, камера сверхуБудет ли взаимодействовать физика 3д объекта...