/// <summary>Initializes the base class with the given word, then computes /// ushort representations of the metaphone keys computed by the /// base class</summary> /// /// <param name="word">Word for which to compute metaphone keys</param> public ShortDoubleMetaphone(String word) : base(word) { m_primaryShortKey = ShortDoubleMetaphone.metaphoneKeyToShort(this.PrimaryKey); if (this.AlternateKey != null) { m_alternateShortKey = ShortDoubleMetaphone.metaphoneKeyToShort(this.AlternateKey); } else { m_alternateShortKey = METAPHONE_INVALID_KEY; } }
/// <summary>Sets a new current word, computing the string and ushort representations /// of the metaphone keys of the given word. /// /// Note that this uses the new modifier, which hides the base class /// computeKeys. The base class's computeKeys is then explicitly /// called as part of the function body. It is important to note that /// this is NOT equivalent to overriding a virtual function, in that /// polymorphism is not provided. In this case, polymorphism is of no /// value, while the potential efficiency gained by not using virtual /// methods is quite valuable.</summary> /// /// <param name="word">New current word for which to compute metaphone keys</param> new public void computeKeys(String word) { base.computeKeys(word); m_primaryShortKey = ShortDoubleMetaphone.metaphoneKeyToShort(this.PrimaryKey); if (this.AlternateKey != null) { m_alternateShortKey = ShortDoubleMetaphone.metaphoneKeyToShort(this.AlternateKey); } else { m_alternateShortKey = METAPHONE_INVALID_KEY; } }