2016-07-31 9 views
0

私はyoutubeにチュートリアルをフォローしていました。 8:04インストラクターがローカルメソッドをオーバーロードされたToStringにアタッチしたとき、同じことをしようとすると、intellisenseのオーバーロードされたメソッドが表示されません。ToStringがインテリセンスに表示されない

enter image description here

public class Person 
    { 
     public string FirstName { get; set; } 
     public string LastName { get; set; } 
     public DateTime StartDate { get; set; } 
     public int Rating { get; set; } 

     public override string ToString() 
     { 
      return string.Format("{0} {1}", FirstName, LastName); 
     } 

     public string ToString(PersonFormat format) 
     { 
      return format(this); 
     } 

私はどこかで何かが欠けていますように、それはwork.Looksしない、あまりにもキーワードのオーバーライドを追加してみました。

答えて

0

これは、PersonListBox.Itemsでアクセスしたときにオブジェクトであるpersonの実際のタイプがvarによって隠されているためです。以下の作品:

foreach(Person person in PersonListBox.Items) 
{ 


} 

ながら:

foreach(var person in PersonListBox.Items) 
{ 
    // person is object. It doesn't have the method you want to call. 
    // it even doesn't have FirstName or LastName 
    // try person. and you can clearly see it only has the common 
    // object methods. 
} 

ヒント:あなたはまた、foreach(var p in PersonListBox.Items.OfType<Person>())

+0

感謝を使用することができます!それは動作します! – Noob

+0

@ user3185569:受け入れられる!どうもありがとう ! – Noob

関連する問題