2015-11-23 8 views
10

Ich habe die Quelle der PluralizationService durchsucht, als ich etwas merkwürdiges bemerkte. In der Klasse gibt es ein paar private Wörterbücher, die verschiedene Pluralisierungsregeln widerspiegeln. Zum Beispiel:Was sind die Gruppen von vier Bindestrichen im .NET-Quellcode?

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

Was sind die Gruppen von vier Bindestrichen in den Strings? Ich habe nicht gesehen, dass sie im Code behandelt werden, also sind sie keine Art von Vorlage. Das einzige, was mir einfällt, ist, dass es sich um zensierte Kraftausdrücke handelt ("ch ---- is" wäre "chassis"), was in diesem Fall tatsächlich die Lesbarkeit beeinträchtigt. Ist jemand anderes dazu gekommen? Wenn ich an der vollständigen Liste interessiert wäre, wie würde ich sie sehen?

+0

Ich weiß nicht sicher, aber meine Vermutung wäre, dass es eine Art Platzhalter als Platzhalter ist (z. B. ein passendes Muster, das aus ch besteht, dann 4 Zeichen, dann würde übereinstimmen). –

+4

* "pneumonoultramicroscopicsilicovolcanconiosis" * Ich schätze der Tester, der fand, dass man einen guten Lachen aus dem Fehlerbericht hat, und der Entwickler, der es reparierte, lachte zurück ... (es ist das längste Wort in der englischen Sprache laut Wikipedia) –

+0

Meine beste Vermutung wäre eine Musterübereinstimmung, bei der die Buchstaben selbst keine Rolle spielten, aber die Länge hatte zum Beispiel: Katze, Hut, Fledermaus, wenn sie nicht zu den anderen Fällen passte gleich. Nur eine Vermutung. –

Antwort

5

Von der Verwendung von Reflector, um den dekompilierten Code zu betrachten, kann ich überprüfen, dass die kompilierte Version nicht "----" drin hat und es scheint in der Tat irgendeine Art von Zensur irgendwo auf dem Weg zu sein. Der dekompilierten Code hat dies im Konstruktor:

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

Wie Sie die zensierte Wörter sehen „Herpes“ sind, „Fahrwerk“ und „Hanf“ (wenn ich habe richtig befolgt entlang). Nichts von dem ich persönlich denke, muss zensiert werden, was nahelegt, dass es eine Art automatisiertes System ist, das es tut. Ich würde annehmen, dass sie in der ursprünglichen Quelle enthalten sind, anstatt dass sie in irgendeiner Art von Vorkompilierungszusammenführung hinzugefügt werden (wenn nichts anderes, weil "----" wirklich nicht genug ist, um zu sagen, womit es ersetzt werden sollte). Ich könnte mir vorstellen, dass die Referenzwebseite aus irgendeinem Grund zensiert wird.

Hans Passant auch in Kommentaren im Zusammenhang mit einer Antwort auf eine sehr ähnliche Frage: What does ----s mean in the context of StringBuilder.ToString()?. Dies erklärt, dass "der Quellcode für die veröffentlichte Referenzquelle durch einen Filter geschoben wird, der anstößige Inhalte aus der Quelle entfernt".

+0

ass, nicht chassis.Es wird wahrscheinlich jemand erröten –

+3

Sie haben Recht, dass "ass" ist, was entfernt wurde. Ich habe Bezug genommen, was die ganzen Wörter waren. – Chris

+4

Also das ist clbuttic Filterung schlecht gemacht? –