2014-10-17 41 views
0

我正在嘗試創建2個表單。無法通過表達式引用類型爲什麼?

在表單1中,我想保存所有新聯繫人,以便以後可以顯示它們,並且我添加第二個按鈕,打開表單2,在其中創建聯繫人並關閉窗口後將聯繫人保存到已創建表格1.我得到錯誤列表:

Can not reference a type through an expression 

上​​,我不知道爲什麼。

形式1:

using System; 
using System.Collections.Generic; 
using System.ComponentModel; 
using System.Data; 
using System.Drawing; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 
using System.Windows.Forms; 

namespace WindowsFormsApplication1 
{ 
    public partial class Form1 : Form 
    { 
     public Contacts contacts = new Contacts(); 

     public Form1() 
     { 
      InitializeComponent(); 
     } 

     public class Contacts 
     { 
      private List<Contacts> people = new List<Contacts>(); 

      public List<Contacts> People 
      { 
       get { return people; } 
      } 
     } 

     private void button1_Click(object sender, EventArgs e) 
     { 
      Form2 f2 = new Form2(); 
      f2.Contacts = this.contacts; 
      f2.Show(); 
     } 
    } 
} 

表格2:

using System; 
using System.Collections.Generic; 
using System.ComponentModel; 
using System.Data; 
using System.Drawing; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 
using System.Windows.Forms; 

namespace WindowsFormsApplication1 
{ 
    public partial class Form2 : Form 
    { 
     public class Contacts 
     { 
      private List<Person> persons = new List<Person>(); 

      public List<Person> Persons 
      { 
       get 
       { 
        return this.persons; 
       } 
      } 
     } 

     public Contacts contacts { get; set; } 

     public Form2() 
     { 
      InitializeComponent(); 
     } 

     private void button1_Click(object sender, EventArgs e) 
     { 
      Person p = new Person(); 
      p.Name = textBox1.Text; 
      p.LastName = textBox2.Text; 
      p.PhoneNumber = textBox3.Text; 
      p.eMail = textBox4.Text; 
      this.contacts.Persons.Add(p); 
     } 

     public class Person 
     { 
      public string Name { get; set; } 

      public string LastName { get; set; } 

      public string PhoneNumber { get; set; } 

      public string eMail { get; set; } 
     } 
    } 
} 
+2

來吧夥計。 「聯繫人」是類名稱,「聯繫人」是您想要分配給的內容。不知道爲什麼你有'聯繫人'實施兩次,但這是另一個問題。 – helrich 2014-10-17 11:47:55

+1

純語法錯誤。 'f2.Contacts'中的'Contacts'是一個類型,而不是屬性。 – 2014-10-17 11:48:19

+1

f2,'Contacts'是一個類,你的屬性被稱爲'contacts' – 2014-10-17 11:48:39

回答

3

您是(偶然)指的是嵌套Contacts類。當您使用

f2.Contacts = this.contacts; 

您參考Form2.Contacts

但要參考Form2.contacts財產

f2.contacts = this.contacts; 
相關問題