foreach(Color c in SystemColors)



  • Hallo,

    ich möchte alle Systemfarben in einem Konsolenprogramm mit den zugehörigen Farbwerten auflisten.

    Gibt es eine Möglichkeit, es ungefähr so einfach zu machen, wie in folgendem Code (der nicht funktioniert, da "error CS0118: 'System.Drawing.SystemColors' deutet auf 'Klasse' hin, wo 'Variable' erwartet wurde")?

    foreach(Color c in SystemColors)
    {
    	Console.WriteLine(c.Name + " = " + c.ToString);
    }
    


  • geht auch nicht, weil SystemColors eine Klasse ist und kein Objekt.

    für so ein Fall bietet sich Reflection an.

    System.Reflection.PropertyInfo[] pia = typeof(SystemColors).GetProperties(); 
    
    foreach (System.Reflection.PropertyInfo pi in pia)
    {
    	if (pi.PropertyType.Equals(typeof(Color)))
    	{
    		Console.WriteLine(pi.Name + " = " + pi.GetValue(null, null).ToString());
    	}
    }
    


  • Vielen Dank! 🙂


Anmelden zum Antworten