Привет всем, я читал о наилучшем способе реализации переопределения GetHashCode() для объектов в .NET, и большинство ответов, с которыми я сталкиваюсь, связаны с тем, чтобы каким-то образом группировать числа из членов, которые являются числовыми типами, чтобы придумать метод. Проблема в том, что у меня есть объект, который использует буквенно-цифровую строку в качестве своего ключа, и мне интересно, есть ли что-то принципиально неправильное, просто используя внутренний идентификатор для объектов со строками в виде ключей, что-то вроде следующего?
// Override GetHashCode() to return a permanent, unique identifier for
// this object.
static private int m_next_hash_id = 1;
private int m_hash_code = 0;
public override int GetHashCode() {
if (this.m_hash_code == 0)
this.m_hash_code = <type>.m_next_hash_id++;
return this.m_hash_code;
}
Есть ли лучший способ создать уникальный хеш-код для объекта, который использует буквенно-цифровую строку в качестве своего ключа? (И нет, числовые части буквенно-цифровой строки не уникальны, некоторые из этих строк фактически не имеют чисел в них.) Любые мысли будут оценены!