С# Список объектов

Я не уверен, как создать список объектов. Я получаю "Non-invocable member ListObjects.TestObject.UniqueID" не может использоваться как метод ".

Любое понимание было бы полезно.

Код для объекта, который я пытаюсь создать список:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ListObjects
{
 class TestObject
 {
 public int UniqueID { get; set; }


 }
}

Основной код:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ListObjects
{
 class Program
 {
 static void Main(string[] args)
 {
 TestObject TestObject = new TestObject();
 List<testobject> ObjectList = new List<testobject>();

 ObjectList.Add(new TestObject().UniqueID(1));
 ObjectList.Add(new TestObject().UniqueID(10));
 ObjectList.Add(new TestObject().UniqueID(39));

 }
 }
}
</testobject></testobject>
5 ответов

Вы используете UniqueId как метод. Это свойство и должно быть назначено. Если вы знаете, что при создании TestObject вы будете назначать идентификатор, вы должны сделать поддержку конструктора и использовать его соответствующим образом. Если нет, используйте ObjectList.Add(new TestObject { UniqueID = 1 }); для назначения значения без конструктора.

Так я бы справился с ситуацией:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ListObjects
{
 class TestObject
 {
 public int UniqueID { get; set; }

 public TestObject(int uniqueId)
 {
 UniqueID = uniqueId; 
 }
 }
}

Основной код:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ListObjects
{
 class Program
 {
 static void Main(string[] args)
 {
 List<testobject> ObjectList = new List<testobject>();

 ObjectList.Add(new TestObject(1));
 ObjectList.Add(new TestObject(10));
 ObjectList.Add(new TestObject(39));

 }
 }
}
</testobject></testobject>


Я не могу вспомнить синтаксис, но он из памяти:

повторить эту строку:

ObjectList.Add(new TestObject().UniqueID(1));

с этой строкой:

ObjectList.Add(new TestObject(){UniqueID = 1});

и сделать то же самое для всех. Добавьте строки, которые у вас есть.


public int UniqueID {get; set; задавать;} is not a method its a setter and you use it like a method } не является методом его установщиком, и вы используете его как метод

сделай это

ObjectList.Add(new TestObject()
{
 UniqueID = 1
});


Здесь происходит несколько вещей. Вам не нужен экземпляр объекта для объявления списка, просто тип.

Кроме того, UniqueID является свойством, а не методом. Вы присваиваете им значения (или читаете значения из них), вы не передаете значения, как параметр для метода.

Вы также можете инициализировать список за один вызов, например:

List<testobject> ObjectList = new List<testobject>() 
 { new TestObject() { UniqueID = 1}, 
 new TestObject() { UniqueID = 10 },
 new TestObject() { UniqueID = 39 } };
</testobject></testobject>

Это приведет к появлению нового List где T имеет тип TestObject, а список инициализируется 3 экземплярами TestObject, причем каждый экземпляр инициализируется значением для UniqueID.


TestObject TestObject = new TestObject();

Удалите эту строку.

И отредактируйте следующие строки этого синтаксиса

new TestObject { UniqueID = 39 }

licensed under cc by-sa 3.0 with attribution.