public void ResetDefaults() { foreach (string n in nomi) { Dato x = (Dato)typeof(Colebrook).GetField(n).GetValue(this); x.Default(); } }
public bool Input(string name) { bool ok = false; if (nomi.Contains(name)) { Dato x = (Dato)typeof(Colebrook).GetField(name).GetValue(this); ok = x.Get(); } return(ok); }
public bool Check(out string s) { bool ok = true; StringBuilder strb = new StringBuilder(); foreach (string n in nomi) { Dato x = (Dato)typeof(Colebrook).GetField(n).GetValue(this); if (double.IsNaN(x.v) || double.IsInfinity(x.v)) { ok = false; strb.Append(x.name + ", "); } } s = strb.ToString().Trim(new char[] { ' ', ',' }); return(ok); }
/// <summary> /// Costruttore /// </summary> public Colebrook() { nomi = new List <string>(); foreach (FieldInfo inf in typeof(Colebrook).GetFields()) { if (inf.FieldType == typeof(Dato)) { nomi.Add(inf.Name); } } Fa = new Dato(0, "Fattore di attrito []", "[]", 0.001, nameof(Fa)); D = new Dato(0, "Diametro interno", "[m]", 0.020, nameof(D), "[mm]", 0.001); ro = new Dato(0, "Densità", "[kg/m3]", 1000, nameof(ro)); v = new Dato(0, "Velocità", "[m/s]", 1, nameof(v)); r = new Dato(0, "Perdita di carico unitaria", "[Pa/m]", 0, nameof(r)); e = new Dato(0, "Rugosità", "[m]", 0.0001, nameof(e), "[mm]", 0.001); mu = new Dato(0, "Viscosità dinamica", "[Pa s]", 8.94e-4, nameof(mu)); nu = new Dato(0, "Viscosità cinematica", "[m2/s]", 0, nameof(nu)); Re = new Dato(0, "Numero di Reynolds", "[]", 2000, nameof(Re)); eD = new Dato(0, "Rugosità relativa", "[]", 0.1, nameof(eD)); ResetDefaults(); }
/// <summary> /// Stampa la variabile (lento, usa Reflection) /// </summary> /// <param name="name">Nome della variabile</param> /// <returns></returns> public void Print(string name) { Dato x = (Dato)typeof(Colebrook).GetField(name).GetValue(this); x.Print(); }