/// <summary>
 /// Crea sumant els valors de dos objectes MorfoGram.
 /// Per als objectes inexistents, se suposa el valor NOCAT, NOTEMPS, etc.
 /// Si els valors són incompatibles, es provoca una excepció.
 /// </summary>
 /// <param name="mf1">El primer MorfoGram</param>
 /// <param name="mf2">El segon MorfoGram</param>
 public MorfoGram(MorfoGram mf1, MorfoGram mf2)
 {
     if (mf1 == null && mf2 == null)
         return;
     if (mf1 == null || mf2 == null)
     {
         MorfoGram mfx = (mf1 != null) ? mf1 : mf2;
         cat = mfx.Cat;
         temps = mfx.Temps;
         pers = mfx.Pers;
         gen = mfx.Gen;
         nbre = mfx.Nbre;
         return;
     }
     if (Unificables(mf1, mf2))
     {
         cat = (mf1.Cat != eCat.NOCAT) ? mf1.Cat : mf2.Cat;
         temps = (mf1.Temps != eTemps.NOTEMPS) ? mf1.Temps : mf2.Temps;
         pers = (mf1.Pers != ePers.NOPERS) ? mf1.Pers : mf2.Pers;
         gen = (mf1.Gen != eGen.NOGEN) ? mf1.Gen : mf2.Gen;
         nbre = (mf1.Nbre != eNbre.NONBRE) ? mf1.Nbre : mf2.Nbre;
     }
     else
     {
         if ((mf1.Cat != eCat.NOCAT) && (mf2.Cat != eCat.NOCAT) && (mf1.Cat != mf2.Cat))
             throw new Exception(String.Format("Categories incompatibles ({0}, {1})", mf1.ToString(), mf2.ToString()));
         if ((mf1.Temps != eTemps.NOTEMPS) && (mf2.Temps != eTemps.NOTEMPS) && (mf1.Temps != mf2.Temps))
             throw new Exception(String.Format("Temps incompatibles ({0}, {1})", mf1.ToString(), mf2.ToString()));
         if ((mf1.Pers != ePers.NOPERS) && (mf2.Pers != ePers.NOPERS) && (mf1.Pers != mf2.Pers))
             throw new Exception(String.Format("Persones incompatibles ({0}, {1})", mf1.ToString(), mf2.ToString()));
         if ((mf1.Gen != eGen.NOGEN) && (mf2.Gen != eGen.NOGEN) && (mf1.Gen != mf2.Gen))
             throw new Exception(String.Format("Gèneres incompatibles ({0}, {1})", mf1.ToString(), mf2.ToString()));
         if ((mf1.Nbre != eNbre.NONBRE) && (mf2.Nbre != eNbre.NONBRE) && (mf1.Nbre != mf2.Nbre))
             throw new Exception(String.Format("Categories incompatibles ({0}, {1})", mf1.ToString(), mf2.ToString()));
     }
 }
 /// <summary>
 /// Crea amb una categoria, un gènere i un nombre.
 /// </summary>
 /// <param name="cat">La categoria</param>
 /// <param name="temps">El temps verbal</param>
 /// <param name="pers">La persona</param>
 /// <param name="gen">El gènere</param>
 /// <param name="nbre">El nombre</param>
 public MorfoGram(eCat cat, eTemps temps, ePers pers, eGen gen, eNbre nbre)
 {
     this.cat = cat;
     this.temps = temps;
     this.pers = pers;
     this.gen = gen;
     this.nbre = nbre;
 }
 /// <summary>
 /// Crea amb un nombre.
 /// </summary>
 /// <param name="gen">El nombre</param>
 public MorfoGram(eNbre nbre)
 {
     this.nbre = nbre;
 }
 /// <summary>
 /// Crea amb una categoria, un gènere i un nombre.
 /// </summary>
 /// <param name="cat">La categoria</param>
 /// <param name="gen">El gènere</param>
 /// <param name="nbre">El nombre</param>
 public MorfoGram(eCat cat, eGen gen, eNbre nbre)
 {
     this.cat = cat;
     this.gen = gen;
     this.nbre = nbre;
 }
 /// <summary>
 /// Crea amb una categoria i un nombre.
 /// </summary>
 /// <param name="cat">La categoria</param>
 /// <param name="nbre">El nombre</param>
 public MorfoGram(eCat cat, eNbre nbre)
 {
     this.cat = cat;
     this.nbre = nbre;
 }