2016-08-24 38 views
-1
Class1 n = new Class1 { Id = 1, 
         Name="salis", city="KhANPUR", email="ASDASDASDA" }; 

foreach (var fieldInfo in n.GetType().GetProperties()) 
{ 
    var propName = fieldInfo.Name; 
    Console.WriteLine(n.propName); 
} 

我知道它會拋出一個異常,我的代碼是壞的。我可以這樣稱呼一個道具嗎?如果沒有,那我該怎麼做動態

請幫助這個我怎麼能做到這一點

+0

什麼異常做它扔? – Phiter

+0

@PhiterFernandes由於'Class1'沒有名爲'propName'的成員,所以甚至不編譯。 – juharr

+0

是的,我試圖編譯我注意到了。 – Phiter

回答

3

你應該使用:

Console.WriteLine(fieldInfo.GetValue(n)); 
1

完整的編譯版本:

using System; 

namespace ConsoleApplication99 
{ 
    class Program 
    { 
    class Class1 
    { 
     public int Id { get; set; } 
     public string Name { get; set; } 
     public string city { get; set; } 
     public string email { get; set; } 
    } 

    static void Main(string[] args) 
    { 
     Class1 n = new Class1 { Id = 1, Name = "salis", city = "KhANPUR", email = "ASDASDASDA" }; 

     foreach (var fieldInfo in n.GetType().GetProperties()) 
     { 
     var propName = fieldInfo.Name; 
     var propValue = fieldInfo.GetValue(n); 
     Console.WriteLine("{0,-5}: {1}", propName, propValue); 
     } 
    } 
    } 
} 

結果:

Id : 1 
Name : salis 
city : KhANPUR 
email: ASDASDASDA 
+0

我還打印了我想使用它的屬性的名稱,像Class1一樣n = new Class1(); n.propName; –

+0

我不確切地知道你的意思。應該在n.proName中顯示什麼名字?編號,名稱,城市,電子郵件...? – MaxKlaxx

+0

它將在'foreach'循環內 當propname = city那麼我想'n.city',當propname = email然後我想'n.email' –

相關問題