Ciao a tutti, stavo lavorando a un'idea, praticamente sto realizzando una piccola e molto semplice libreria di logica fuzzy e mi sono trovato davanti un problema (premetto che è da poco che programmo in c#...abbiate pazienza se scrivo castronerie...):

Ho una classe principale FuzzySet che ha come attributi una collezione di fuzzy membri (un punto cartesiano x,y) e una descrizione e poi ho una classe FuzzyNumber che eredita FuzzySet e ha in + un attributo tipo (es. Triangolare, Trapezoidale, Quadratico).
codice:
public class FuzzySet
    {
        #region Private Variables

        /// <summary>
        /// Un Fuzzy Set ha come attributi un insieme di membri o di Fuzzy Set e una descrizione
        /// </summary>
        private FuzzySetCollection fuzzySets;
        protected FuzzyMemberCollection fuzzyMembers;
        protected String name;

        public FuzzySet(FuzzyMemberCollection coll, String name) 
        {
            this.fuzzyMembers = coll;
            this.name = name;
        }

// .....etc....
}

public class FuzzyNumber : FuzzySet
    {
        #region Private Variables

        /// <summary>
        /// tipologia di fuzzy Number: triangolare, trapezoidale, quadratico, normalizzato
        /// </summary>
        private String type;

        #endregion

        #region Constructor

        public FuzzyNumber(FuzzyMemberCollection coll, String name, String type) : base(coll, name) 
        {
            this.type = type;
        }
        
        #endregion
}
Ho anche un oggetto Collection FuzzySetCollection che ha un metodo find che cerca il fuzzy set con quella descrizione.
codice:
public FuzzySet find(String name) 
        {
            foreach (FuzzySet set in this) 
            {
                if (set.Name.Equals(name)) { return set; }
            }

            return null;
        }
Il problema sta quando per calcolare il valore di verità di una proposizione tipo 35° è caldo io cerco il fuzzy set caldo lo trovo e devo capire se è un fuzzy number...visto che la classe fuzzy number ha in più l'attributo type pensavo di fare un metodo nella classe fuzzy set che controlla se quell'oggetto ha l'attributo type e nel caso fa un cast a fuzzy number...qualcuno ha qualche idea?

Spero di non essere stato troppo contorto...grazie a tutti!