Мне нужно сгенерировать «хэш» для любого уникального вызова метода в моем проекте. Например, у меня есть метод string GetSomeString(int someInt)
. Таким образом, мне нужны разные хэши в этих случаях:Как получить уникальный ключ для любого вызова метода?
string GetSomeString(1) -- key 1
string GetSomeString(2) -- key 2
string GetSomeString(3) -- key 3
Как создать такой хэш?
UPD: Я хочу зарегистрировать любое выполнение метода с помощью некоторого уникального хеша для каждого вызова метода. Что-то вроде этого:
public delegate T HelperFactoryMethod<T>();
public static LogMethodExecution<T>(HelperFactoryMethod<T> factoryMethod) where T: class
{
string key = GetHashString(factoryMethod);
StoreToDatabase(key);
...
}
Результат Пример GetHashString() должен быть как:
- Список GetSomeObjects (1, ObjectType.Simple) должны быть 'ListGetSomeObjects_1_ObjectType.Simple' или что-то вроде это.
- Список GetSomeObjects (2, ObjectType.None) должен быть 'ListGetSomeObjects_2_ObjectType.None' или что-то в этом роде.
что, если вы вызываете снова GetSomeString (1)? Нужно ли снова возвращать 1 или другое значение? – Simone
Не могли бы вы рассказать нам больше о конечной цели здесь? Я не уверен, что вы ищете представление функции класса (делегата) первого класса, memoize функции или что-то еще. – Ani
Вам понадобится немного конкретнее о том, что именно вы хотите, чтобы этот ключ был. В качестве тривиального примера вы можете просто вернуть текстовую строку «1», «2», «3», но я подозреваю, что это не то, что вы хотите! –