2011-05-07 19 views
8

Örnek isminden değişken isimlerimizi listelemek mümkündür.Tüm dize değişken isimlerini ve değerlerini listelemek mümkün mü

public class Car 
    { 
    public string Color; 
    public string Model; 
    public string Made; 
    } 

    protected void Page_Load(object sender, EventArgs e) 
    { 

//Create new instance 
    Car MyCar = new Car(); 
    MyCar.Color = "Red"; 
    MyCar.Model = "NISSAN"; 
    MyCar.Made = "Japan"; 

//SOMETHING HERE 
    foreach (MyCar Variable in MyCar) 
    { 
     Response.Write("<br/>Variable Name"+ "XXX"+ "Variable Value"); 
    } 

} 
+0

Not o Kamusal alanları kullanmak genellikle kötü bir uygulamadır. Bunun yerine özellikleri kullanmalısınız. – svick

cevap

6

böyle bir şey deneyin: o dayanarak

, senin dava bu kodu çözülecek düşünüyorum

using System; 

class Car 
{ 
    public string Color; 
    public string Model; 
    public string Made; 
} 

class Example 
{ 
    static void Main() 
    { 
     var car = new Car 
     { 
      Color = "Red", 
      Model = "NISSAN", 
      Made = "Japan" 
     }; 

     foreach (var field in typeof(Car).GetFields()) 
     { 
      Console.WriteLine("{0}: {1}", field.Name, field.GetValue(car)); 
     } 
    }  
} 
+0

+1 kodu beni yenmek için ;-) – takrl

4

Bu yansıma kullanılarak yapılabilir. Ancak, sınıfınızda yer alan her şeyi numaralandırmak istiyorsanız, sadece bir sözlük kullanabilir ve bunu sıralayabilirsiniz.

5

Bunu yapmak için Yansıma'ya ihtiyacınız olacak. Burada benzer bir soru görebilirsiniz: How do I get a list of all the public variables I have in a Class? (C#). Böyle

private void Window_Loaded(object sender, RoutedEventArgs e) 
{ 
    FieldInfo[] myFieldInfo; 
    Type myType = typeof(Car); 

    myFieldInfo = myType.GetFields(BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.Public); 

    string result = @"The String fields of Car class are:"; 

    for (int i = 0; i < myFieldInfo.Length; i++) 
    { 
     if (myFieldInfo[i].FieldType == typeof(String)) 
     { 
      result += "\r\n" + myFieldInfo[i].Name; 
     } 
    } 

    MessageBox.Show(result); 
} 

public class Car 
{ 
    public string Color; 
    public string Model; 
    public string Made; 
} 
3

şey:

foreach (var prop in typeof(Car).GetProperties()) 
{ 
    Response.Write(prop.Name + ": " + prop.GetValue(MyCar, null) ?? "(null)"); 
} 
+0

-1 Bunlar alanlar değil, özelliklerdir. –

+0

O zaman çalışması gereken 'GetProperties()' yerine GetFields() 'olmalıdır. – takrl

İlgili konular