【发布时间】:2010-06-02 15:57:25
【问题描述】:
根据New Recommendations for Using Strings in Microsoft .NET 2.0 中发布的指南,字符串中的数据可能会表现出以下行为类型之一:
- 一个非语言标识符,其中字节完全匹配。
- 一种非语言标识符,与大小写无关,尤其是存储在大多数 Microsoft Windows 系统服务中的一段数据。
- 与文化无关的数据,在语言上仍然具有相关性。
- 需要当地语言习惯的数据。
鉴于此,我想知道在公共 API 中传达字符串参数的预期行为的最佳方式。我无法在Framework Design Guidelines 中找到答案。
考虑以下方法:
f(string this_is_a_linguistic_string)
g(string this_is_a_symbolic_identifier_so_use_ordinal_compares)
变量命名和 XML 文档是我能做的最好的吗?我可以用某种方式使用属性来标记字符串的要求吗?
现在考虑以下情况:
h(Dictionary<string, object> dictionary)
请注意,字典实例是由调用者创建的。我如何传达被调用者期望字典持有的 IEqualityComparer
【问题讨论】:
-
我不希望通过使用特殊的字典类或包装字符串的类来使库复杂化。
标签: c# frameworks