Я пытаюсь добавить новый объектный объект в список класса, но сообщает мне, что мне нужна ссылка на объект obj для свойства. Я не могу точно понять, что мне делать, вы можете дать мне совет?
public class CreateContact
{
logic...
}
public class AddedContacts
{
private List<CreateContact> Contact;
public List<CreateContact> ClassCreateContact
{
get { return Contact; }
set { this.Contact = value; }
}
}
Я хочу создать и добавить в список новый созданный «CreateContact», нажав кнопку.
private void button4_Click(object sender, EventArgs e)
{
CreateContact p = new CreateContact(textBox1.Text, textBox2.Text, textBox3.Text, textBox4.Text);
AddedContacts.ClassCreateContact.add(p); // Error 1 An object reference is required for the non-static field, method, or property
}
3 ответа
Вам необходимо создать экземпляры списков в конструкторе вашего класса AddedContacts
:
public class AddedContacts
{
private List<CreateContact> Contact;
public List<CreateContact> ClassCreateContact
{
get { return Contact; }
set { this.Contact = value; }
}
public AddedContacts()
{
Contact = new List<CreateContact>();
ClassCreateContact = new List<CreateContact>();
}
}
Вам также необходимо создать экземпляр AddedContacts
для работы, и, наконец, вам нужно посмотреть регистр: это Add
не add
:
AddedContacts AC = new AddedContacts();
AC.ClassCreateContact.Add(p);
Вы определили свойство в классе, но свойство будет существовать только тогда, когда существует экземпляр класса. Вам необходимо создать экземпляр через AddedContacts contacts = new AddedContacts()
. Тогда контакты будут ссылкой на реальный объект, который содержит список.
Если вы хотите, чтобы сам класс содержал список, объявите свойство как static
Если вы не будете использовать сеттер
public class AddedContacts
{
public readonly List<CreateContact> Contact = new List<CreateContact>();
}
private void button4_Click(object sender, EventArgs e)
{
CreateContact p = new CreateContact(textBox1.Text, textBox2.Text, textBox3.Text, textBox4.Text);
AddedContacts ac= new AddedContacts();
ac.Contact.Add(p);
}
Похожие вопросы
Связанные вопросы
Новые вопросы
c#
C# (произносится как «see Sharp») — это высокоуровневый мультипарадигменный язык программирования со статической типизацией, разработанный Microsoft. Код C# обычно нацелен на семейство инструментов и сред выполнения Microsoft .NET, которое включает в себя .NET, .NET Framework, .NET MAUI и Xamarin среди прочих. Используйте этот тег для ответов на вопросы о коде, написанном на C#, или о формальной спецификации C#.