Pergunta

Eu estou chegando ao último estágio da minha corda (uma versão mais escalável de String) implementação. Obviamente, eu quero todas as operações para dar o mesmo resultado que as operações em Strings sempre que possível.

Fazendo isso por operações ordinais é bastante simples, mas eu estou preocupado sobre a implementação de operações sensíveis à cultura corretamente. Especialmente desde que eu sei apenas duas línguas e em ambas as operações sensíveis à cultura comportar exatamente o mesmo que as operações ordinais fazer!

Assim, existem coisas específicas que eu poderia testar e obter pelo menos alguma confiança que eu estou fazendo as coisas corretamente? Eu sei, por exemplo, cerca de ß igual a SS quando ignorando casos em alemão; sobre pontilhada e undotted i em turco.

Foi útil?

Solução

Pares substitutos, se você planeja para apoiá-los -. Incluindo combinações inválidos (por exemplo, apenas uma parte de um)

Se você está fazendo codificação e decodificação, certifique-se de manter o estado suficiente para lidar com sendo dado arbitrariamente blocos de dados binários para decodificar que pode terminar a meio caminho através de um personagem, com a metade restante vindo no próximo personagem.

Outras dicas

O teste turco é o melhor que eu sei:)

Você deve imitar as implementações de métodos string e usar a biblioteca núcleo para fazer isso por você. É muito difícil de levar em conta todos os aspectos possíveis de cada cultura. Em vez de re-inventar o refletor uso roda sobre os métodos de corda e ver as chamadas internas. Por exemplo String.Compare usa CultureInfo.CurrentCulture.CompareInfo.Compare para comparar 2 cordas na cultura atual.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top