Завершая Equals, вы в основном заявляете, что именно тот, кто лучше знает, как сравнивать два экземпляра данного типа, так что вы, вероятно, будете лучшим кандидатом для предоставления лучшего хеш-кода.
Это пример того, как ReSharper пишет для вас функцию GetHashCode ():
public override int GetHashCode()
{
unchecked
{
var result = 0;
result = (result * 397) ^ m_someVar1;
result = (result * 397) ^ m_someVar2;
result = (result * 397) ^ m_someVar3;
result = (result * 397) ^ m_someVar4;
return result;
}
}
Как вы можете видеть, она просто пытается угадать хороший хеш-код на основе всех полей в классе , но так как вы знаете диапазон доменов вашего объекта или диапазон значений, вы все равно можете обеспечить лучший.
print "File: ", __FILE__, " Line: ", __LINE__, "\n";
или
warn("foo");
__ СТРОКА __ литерал документируется в раздел Special Literals perldata страница справочника .
Примечание там является глюком с
жемчуг-e'warn ("нечто")'
нечто в-e строке 1.
, если это заканчивается новой строкой, это не будет печатать жемчуг номера строки
-e'warn ("foo\n")'
нечто
, Это документируется в "perldoc-f, умирают", но возможно легко отсутствовать в "perldoc-f, попросили" ссылку раздела умереть...