12

PluralizationService当我发现一些奇怪的东西时,我正在浏览它的来源。在课堂上有几个反映不同复数规则的私人词典。例如:

    private string[] _uninflectiveWordList =
        new string[] { 
            "bison", "flounder", "pliers", "bream", "gallows", "proceedings", 
            "breeches", "graffiti", "rabies", "britches", "headquarters", "salmon", 
            "carp", "----", "scissors", "ch----is", "high-jinks", "sea-bass", 
            "clippers", "homework", "series", "cod", "innings", "shears", "contretemps", 
            "jackanapes", "species", "corps", "mackerel", "swine", "debris", "measles", 
            "trout", "diabetes", "mews", "tuna", "djinn", "mumps", "whiting", "eland", 
            "news", "wildebeest", "elk", "pincers", "police", "hair", "ice", "chaos",
            "milk", "cotton", "pneumonoultramicroscopicsilicovolcanoconiosis",
            "information", "aircraft", "scabies", "traffic", "corn", "millet", "rice", 
            "hay", "----", "tobacco", "cabbage", "okra", "broccoli", "asparagus", 
            "lettuce", "beef", "pork", "venison", "mutton",  "cattle", "offspring", 
            "molasses", "shambles", "shingles"};

字符串中的四个破折号组是什么?我没有看到他们在代码中处理,所以他们不是某种模板。我唯一能想到的是那些是经过审查的咒骂('ch----is' 将是 'chassis'),在这种情况下,这实际上损害了可读性。有没有其他人遇到过这个?如果我对实际的完整列表感兴趣,我将如何查看它?

4

1 回答 1

6

通过使用Reflector查看反编译的代码,我可以验证编译后的版本中没有“----”,并且在此过程中确实似乎存在某种审查。反编译的代码在构造函数中有这个:

this._uninflectiveWordList = new string[] { 
    "bison", "flounder", "pliers", "bream", "gallows", "proceedings", "breeches", "graffiti", "rabies", "britches", "headquarters", "salmon", "carp", "herpes", "scissors", "chassis", 
    "high-jinks", "sea-bass", "clippers", "homework", "series", "cod", "innings", "shears", "contretemps", "jackanapes", "species", "corps", "mackerel", "swine", "debris", "measles", 
    "trout", "diabetes", "mews", "tuna", "djinn", "mumps", "whiting", "eland", "news", "wildebeest", "elk", "pincers", "police", "hair", "ice", "chaos", 
    "milk", "cotton", "pneumonoultramicroscopicsilicovolcanoconiosis", "information", "aircraft", "scabies", "traffic", "corn", "millet", "rice", "hay", "hemp", "tobacco", "cabbage", "okra", "broccoli", 
    "asparagus", "lettuce", "beef", "pork", "venison", "mutton", "cattle", "offspring", "molasses", "shambles", "shingles"
 };

正如你所看到的,被删减的词是“herpes”、“chassis”和“hemp”(如果我没听错的话)。我个人认为这些都不需要审查,这表明它是某种自动化系统。我会假设原始源包含它们,而不是它们被添加到某种预编译合并中(如果没有别的,因为“----”真的不足以说明它应该被替换为什么)。我想出于某种原因,参考网站会让他们受到审查。

Hans Passant 还在评论中链接到一个非常相似的问题的答案:在 StringBuilder.ToString() 的上下文中 ----s 是什么意思?. 这解释了“已发布参考源的源代码是通过过滤器推送的,该过滤器从源中删除了令人反感的内容”。

于 2015-11-23T14:49:44.043 回答