Създаване на истанции на клас със цикъл


0

Искам да направя няколко истанции на един клас а всяко име на обект да бъде стойност от масив. За сега съм направил това:

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace obj { class Obj { } class Program { static void Main(string[] args) { String[] Number = new String[5]; for (int i = 0; i < Number.Length; i++) { Number[i] = "objNumber" + i.ToString(); Obj Number[i] = new Obj(); } } } }



Отговори



1
В случая може да ги напъхваш в някаква структура данни и да използваш итератора и  като идентификатор.

от Talic_Zealot (172 точки)


0

Лоши работи недей да правиш :) Вместо динамично да си създаваш променливи по този начин:

Obj Number[i] = new Obj();

за което компилатора веднага трябва да ти изреве, но даже да го хакнеш по някакъв извратен начин - със сигурност ще е лоша практика. Вместо това, направи си едно пропърти, което да ти пази името на обекта.

Пример:

class Demo { public class Obj { public Obj(string name) { this.Name = name; } public string Name { get; set; } } static void Main() { string[] names = {"Pesho", "Gosho", "Stamat"}; var myObjs = new List<Obj>(); for(int i = 0; i < names.Length; i++) { var currentName = names[i]; myObjs.Add(new Obj(currentName)); } // Print the collection's names foreach(var obj in myObjs) { Console.WriteLine(obj.Name); } } }





1
хората отговарят.. ама какъв е въпросът?

от kiko81 (1655 точки)


0

class Obj { public string Name {get;set;} public Obj(string setName) { Name = setName; } } class Program { static void Main(string[] args) { String[] Number = new String[5]; Obj[] objects = new Obj[5]; for (int i = 0; i < Number.Length; i++) { objects[i] = new Obj("objNumber" + i.ToString()); } } }


от Betastate (341 точки)


0

Препоръчвам лекции - по едномерни масиви и по използване на класове и обекти :D


от kon.simeonov (5238 точки)