No meu projeto atual, me deparei com o requisito de criar classes genéricas com o mesmo nome, mas com números diferentes de parâmetros genéricos. Por exemplo:
MyClass<T1>
MyClass<T1, T2>
MyClass<T1, T2, T3>
Como eu quero tudo isso no mesmo espaço para nome, estou confuso sobre como estruturar e nomear minhas classes e arquivos?
Se seguirmos a ideia de que devemos ter classes limitadas a uma por arquivo e que esses arquivos estejam em uma estrutura de pastas que represente a hierarquia de namespace e que o nome do arquivo corresponda ao nome da classe, como eu lido com essa situação ?
O que realmente estou perguntando aqui é: como devo nomear o arquivo que contém MyClass<T1>e como devo nomear o arquivo que contém MyClass<T1, T2>? Não estou perguntando quais devem ser os nomes dos parâmetros de tipo.
TKey, TValueconvenção. Func tem um TResultparâmetro de tipo. Embora eu concorde que você possa usar T1, T2etc. para um número variável de parâmetros de entrada que, de outra forma, não têm usos específicos como TKeye TValue.