2016-10-12 49 views
-6

我有對象數組,我怎樣才能打印它的包含控制檯?向控制檯輸出對象陣列

我需要打印屬性及其值。

object[] attrs; 
attrs = prop.GetCustomAttributes(true); 

我必須使用反射,但我不知道如何使用它。

+0

那麼,到目前爲止,您的研究揭示了什麼?爲什麼它不能幫助回答你的問題? –

+0

'foreach(var attrs).......'' –

+0

我想你沒有明白我的意思,我需要打印屬性名稱和它的值 –

回答

0

您需要使用反射。這裏有一個例子:

static void Main(string[] args) 
    { 
     string obj1 = "a string"; 
     int obj2 = 12; 
     DateTime obj3 = DateTime.Today; 

     object[] obj_array = { obj1, obj2, obj3 }; 

     foreach (object obj in obj_array) 
     { 
      //Print value 
      Console.WriteLine("Value: " + obj.ToString()); 

      //Print property names 
      Console.WriteLine("Property Names:"); 
      foreach (PropertyInfo prop in obj.GetType().GetProperties()) 
      { 
       Console.WriteLine(prop.Name); 
      } 
      Console.WriteLine(); 
     } 
     Console.Read(); 
    } 

編輯:對不起,你可能想要檢索對象本身的屬性值。在這種情況下,下面是另一個示例:

class Program 
{ 
    static void Main(string[] args) 
    { 
     MyObject myobj = new MyObject("prop1", "prop2"); 
     object[] obj_array = { myobj }; 

     foreach (object obj in obj_array) 
     { 
      foreach (PropertyInfo property in obj.GetType().GetProperties()) 
      { 
       Console.WriteLine("Property Name: " + property.Name); 
       Console.WriteLine("Property Value: " + property.GetValue(obj)); 
      } 
     } 
     Console.Read(); 
    } 
} 
public class MyObject 
{ 
    public string Property1 { get; set; } 
    public string Property2 { get; set; } 
    public MyObject(string p1, string p2) 
    { 
     Property1 = p1; 
     Property2 = p2; 
    } 
} 
0

您可以嘗試:Console.WriteLine(string.Join(",", attrs));

+0

之後是什麼對象數組,巫婆包含屬性和它的值,並且我需要打印它 –