12

PluralizationService奇妙なことに気づいたとき、私はのソースを閲覧していました。クラスには、異なる複数形規則を反映した 2 つの個人辞書があります。例えば:

    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"};

文字列の 4 つのダッシュのグループは何ですか? 私はそれらがコードで処理されているのを見なかったので、それらはある種のテンプレートではありません。私が考えることができる唯一のことは、それらが検閲された罵倒語(「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"
 };

ご覧のとおり、検閲された単語は「ヘルペス」、「シャシー」、「ヘンプ」です (正しくフォローしていれば)。個人的には検閲が必要だと思うものはなく、何らかの自動化されたシステムがそれを行っていることを示唆しています. 元のソースには、何らかのプリコンパイル マージで追加されるのではなく、それらが含まれていると想定します (「----」だけでは、何を置き換える必要があるかを示すには十分ではないため)。なんらかの理由で、参照Webサイトが検閲されていると思います.

Hans Passant は、非常によく似た質問への回答にリンクされているコメントにも含まれています: What does ----s mean in the context of StringBuilder.ToString()? . これは、「公開された参照ソースのソース コードは、好ましくないコンテンツをソースから削除するフィルターを介してプッシュされる」ことを説明しています。

于 2015-11-23T14:49:44.043 に答える