Были случаи, когда я хотел бы переопределить метод в классе с использованием метода расширения. Есть ли способ сделать это в С#?
Например:
public static class StringExtension
{
public static int GetHashCode(this string inStr)
{
return MyHash(inStr);
}
}
Случай, когда я хотел сделать это, - это сохранить хэш строки в базе данных и использовать это значение всеми классами, использующими хэш-класс строки (например, словарь и т.д.). ) Поскольку встроенный алгоритм хеширования .Net не гарантированно совместим с одной версией Framework до следующего, я хочу заменить его своим собственным.
Есть другой случай, который я выполнил, где я бы хотел переопределить метод класса с помощью метода расширения, поэтому он не просто специфичен для строкового класса или метода GetHashCode.
Я знаю, что я мог бы сделать это с подклассированием существующего класса, но было бы удобно иметь возможность делать это с расширением во многих случаях.