我创建了一个为某些参数生成唯一字符串键的方法。但是如果使用相同的值调用相同的密钥。
我只接受原始类型,字符串,DateTime,Guid和Nullable(因为我将类型附加在一起,我可以区分谁是int和谁是int?),因为我可以将所有字符串转换为字符串而不会丢失值或精度。 (对于float和double使用ToString(“R”),到DateTime ToString(“O”))。
有一种简单的方法可以知道哪些类型我可以在没有冲突的情况下转换为字符串?如何改变(我之前说过,浮动,双倍和日期时间有特定的方式)
由于
答案 0 :(得分:0)
确保将文化不变字符串用于往返是很重要的。
因此我通常使用XmlConvert.ToXxx()
方法转换为字符串并从中解析;那些是使用标准XML格式,旨在用于往返。查看支持的类型还可以让您了解开箱即用的类型。
对于更通用的方法,您可以使用IConvertible
接口方法,这些方法都接受IFormatProvider
,例如可以是不变文化(CultureInfo.InvariantCulture
),但这不是'确实需要一个往返功能。