@Nikita07

Как правильно переписать этот код на C#?

Всем привет, помогите переписать данный код (язык Java) на язык C#
@Override
        public int hashCode() {
            return Objects.hash(
                getGitCommitId(),
                getGitCommitIdDescribeShort(),
                getBuildTimeStamp(),
                getProjectVersion(),
                getCopyright(),
                getLicense(),
                getUrl(),
                getBuildJDKVersion(),
                getTargetJREVersion());
        }


Пробовал так, но там идет ошибка, что GetHashCode не может принимать 9 аргументов
public override int GetHashCode()
            {
                return base.GetHashCode(
                    GetGitCommitId(),
                    GetGitCommitIdDescribeShort(),
                    GetBuildTimeStamp(),
                    GetProjectVersion(),
                    GetCopyright(),
                    GetLicense(),
                    GetUrl(),
                    GetBuildJDKVersion(),
                    GetTargetJREVersion());
            }
  • Вопрос задан
  • 255 просмотров
Решения вопроса 1
FoggyFinder
@FoggyFinder
Используйте метод Add из структуры HashCode:

public override int GetHashCode()
{
    var hashCode = new HashCode();

    hashCode.Add(GetGitCommitId());
    hashCode.Add(GetGitCommitIdDescribeShort());
    hashCode.Add(GetBuildTimeStamp());
    hashCode.Add(GetProjectVersion());
    hashCode.Add(GetCopyright());
    hashCode.Add(GetLicense());
    hashCode.Add(GetUrl());
    hashCode.Add(GetBuildJDKVersion());
    hashCode.Add(GetTargetJREVersion());

    return hashCode.ToHashCode();
}


Если бы у вас было меньше 9 аргументов, то можно было бы применить метод Combine.

Но в C# вместо гет-методов лучше использовать свойства
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы