You don't have access to this class

Keep learning! Join and start boosting your career

Aprovecha el precio especial y haz tu profesi贸n a prueba de IA

Antes: $249

Currency
$209
Suscr铆bete

Termina en:

0 D铆as
10 Hrs
45 Min
25 Seg

Creando clases complejas

7/19
Resources

How to optimize the class structure in C#?

Software development is not only based on writing functional code, but also on building a robust and reusable structure. In the example we will see, we start from a superhero class in C# that serves as a basis for implementing significant improvements. Through the creation of a new superpower class, we seek to take full advantage of the capabilities of the language and optimize the structure of the code. This is a way that not only promotes order in the project, but also offers flexibility and efficiency.

Why create a new class for superpowers?

When designing an object, we often find repeating patterns and features that can be shared between different instances. In our case, superpowers are not exclusive to a single superhero. Superpowers such as super strength or the ability to fly do not only belong to Superman.

  • Code reuse: By creating a superpower class we can associate instances of superpowers to different superheroes, saving time and effort by reusing the code.
  • Enriched information: By using a specific class for superpowers, we can include additional details such as a description or a power level.
  • Maintenance: The ability to update and maintain the code is significantly easier, since changes to superpowers are automatically reflected in all superheroes that use it.

How to create the "superpower" class?

Let's define the new superpower class in C#. This example will allow to have a more complex and reusable object:

public class Superpower{ public string Name { get; set; } public string Description { get; set; } public LevelPower Level { get; set; }
 public enum LevelPower { Level1, Level2, Level3 }}
  1. Name: identification of the superpower.
  2. Description: Brief explanation of what the superpower does.
  3. Power Level: We use an enumeration to define specific power levels to force the developer to choose between predefined options.

How to assign superpowers to superheroes?

Having created the superpower class, we can link this new structure with our superhero class. First, we create instances and then associate them:

// Creating superpower instancesSuperpower superpower powerFly = new Superpower{ Name = "Fly", Description = "Ability to fly and glide in the air.", Level = Superpower.LevelPower.Level2};
Superpower superpower superforce = new Superpower{ Name = "Superforce", Level = Superpower.LevelPower.Level3};
// Assigning superpowers to a listList<Superpower> powersSuperman = new List<Superpower> { powerFlying, super-strength };
// Assigning the list to the superherosuperman.Superpowers = powersSuperman;

How does this improve the structure of our code?

Using a superpower class gives us several advantages:

  • Flexibility: we can add or remove powers more dynamically without modifying the superhero structure.
  • Scalability: It facilitates the process of adding more superheroes or superpowers to the project.
  • Organization: Our code base becomes more readable and orderly.

This advancement in software design not only makes a difference in code efficiency, but also in clarity and maintainability for future developers. By implementing these improvements, the code becomes more modular, cleaner and ready for larger scales.

It's time to get down to work and test your creativity by creating all the superpowers your superheroes need, taking advantage of the capabilities offered by this new framework. With this approach, we prepare you to take your development skills one step further, don't stop!

Contributions 34

Questions 1

Sort by:

Want to see more contributions, questions and answers from the community?

DIFERENCIA ENTRE ARRAY y LIST
Tanto los arrays como las listas (List<T>) en C# se utilizan para almacenar colecciones de elementos, pero tienen diferencias clave en t茅rminos de su flexibilidad, funcionalidad y rendimiento. Aqu铆 hay algunas de las diferencias m谩s importantes:

Tama帽o Fijo vs. Din谩mico:

Array: Los arrays tienen un tama帽o fijo que se establece en el momento de su creaci贸n. No pueden cambiar de tama帽o una vez que se han inicializado. Si necesitas agregar o quitar elementos, debes crear un nuevo array con el tama帽o adecuado y copiar los elementos existentes si es necesario.

List: Las listas son din谩micas y pueden cambiar de tama帽o autom谩ticamente. Puedes agregar, insertar, eliminar y modificar elementos f谩cilmente sin preocuparte por el tama帽o subyacente.

Eficiencia de Memoria:

Array: Los arrays pueden ser m谩s eficientes en t茅rminos de memoria en comparaci贸n con las listas, ya que no tienen la sobrecarga de almacenar informaci贸n de capacidad y pueden ser m谩s compactos.

List: Las listas tienen una mayor sobrecarga de memoria debido a la informaci贸n de capacidad interna, lo que significa que pueden consumir m谩s memoria que los arrays si se reservan m谩s espacio del necesario.

Flexibilidad:

Array: Los arrays son r铆gidos en tama帽o y tipo. Debes conocer el tama帽o exacto y el tipo de datos que contendr谩 el array antes de crearlo.

List: Las listas son m谩s flexibles y pueden contener elementos de cualquier tipo. Puedes agregar y quitar elementos din谩micamente, lo que las hace m谩s vers谩tiles.

Funcionalidad:

Array: Los arrays ofrecen funcionalidad limitada en comparaci贸n con las listas. No tienen m茅todos incorporados para agregar, eliminar o buscar elementos, lo que hace que el c贸digo sea m谩s verboso.

List: Las listas proporcionan una amplia gama de m茅todos 煤tiles para agregar, eliminar, buscar y manipular elementos de manera eficiente, lo que facilita la administraci贸n de colecciones.

Sintaxis y Usabilidad:

Array: La sintaxis para trabajar con arrays puede ser menos intuitiva y requerir m谩s c贸digo para realizar tareas comunes, como agregar elementos.

List: Las listas tienen una sintaxis m谩s amigable y su uso suele ser m谩s sencillo y legible.

En general, si necesitas una colecci贸n con un tama帽o fijo y conocido de antemano, y no planeas agregar o quitar elementos con frecuencia, los arrays pueden ser m谩s eficientes en t茅rminos de memoria. Sin embargo, si necesitas una colecci贸n din谩mica que admita operaciones de inserci贸n y eliminaci贸n de elementos de manera eficiente, las listas son una elecci贸n m谩s pr谩ctica y vers谩til en la mayor铆a de los casos.

El Curso B谩sico de Programaci贸n con C# no fue lo suficientemente te贸rico para temas que se ven en este curso y que es el **siguiente** en la ruta de Backend con C# y .Net, si existe otro orden para entender mejor este curso ser铆a ideal corregir la ruta.
Me parece que los ejemplos son muy ficticios, les recomiendo colocar ejemplos de la vida real que se ven en aplicaciones empresariales o comerciales, de esta manera el alumno tendr谩 un mejor enfoque cuando vaya abordar estos retos.
var poderVolar = new SuperPoder();
poderVolar.Nombre = "Volar";
poderVolar.Descripcion = "Capasidad de volar y planear";
poderVolar.Nivel = NivelPoder.NivelTres;

var superFuerza = new SuperPoder();
superFuerza.Nombre = "Super Fuerza";
superFuerza.Descripcion = "Capasidad de levantar objetos muy pesados";
superFuerza.Nivel = NivelPoder.NivelNueve;

var inmortal = new SuperPoder();
inmortal.Nombre = "Inmortal";
inmortal.Descripcion = "No pueden matarlo";
inmortal.Nivel = NivelPoder.NivelNueve;

var superRegeneracion = new SuperPoder();
superRegeneracion.Nombre = "Regeneracion";
superRegeneracion.Descripcion = "Regenera cualquier parte de sus cuerpo";
superRegeneracion.Nivel = NivelPoder.NivelDiez;

var superman = new/*instacia*/ SuperHeroe();
var batman = new SuperHeroe();
var wolverine = new SuperHeroe();

superman.Id = 1;
superman.Name = "Superman";
superman.IdentidadSecreta = "Clark Kent";
superman.Ciudad = "Metropolis";
superman.PuedeVolar = true;

List<SuperPoder> poderesSuperman = new List<SuperPoder>();
poderesSuperman.Add(poderVolar);
poderesSuperman.Add(superFuerza);
superman.superPoder = poderesSuperman;   

batman.Id = 2;
batman.Name = "Batman";
batman.IdentidadSecreta = "Bruce Wayne";
batman.Ciudad = "Gotica";
batman.SuperPoderes = new[] { "No tiene" };
batman.PuedeVolar = false;

List<SuperPoder> poderesWolverine = new List<SuperPoder>();
poderesWolverine.Add(superRegeneracion);
poderesWolverine.Add(inmortal);
wolverine.superPoder = poderesWolverine;

wolverine.Id = 3;
wolverine.Name = "Wolverine";
wolverine.IdentidadSecreta = "Logan";
wolverine.Ciudad = "NewYork";
wolverine.PuedeVolar= false;


class SuperHeroe
{
    public int Id;
    public string Name;
    public string IdentidadSecreta;
    public string Ciudad;
    public List<SuperPoder> superPoder;
    public bool PuedeVolar;
}

class SuperPoder
{
    public string Nombre;
    public string Descripcion;
    public NivelPoder Nivel;
}

enum NivelPoder //manejo de valores implicitos.
{
    NivelUno,
    NivelDos,
    NivelTres,
    NivelCuatro,
    NivelCinco,
    NivelSeis,
    NivelSiete,
    NivelOcho,
    NivelNueve,
    NivelDiez

}

Un enum (enumeraci贸n) en C# es un tipo de dato especial que permite a un desarrollador definir un conjunto de nombres constantes (miembros) bajo un solo identificador. Funciona como una manera de agrupar nombres relacionados y manejarlos como un tipo de datos. Esto hace que el c贸digo sea m谩s legible y mantenible, al permitir referirse a los valores de manera descriptiva.

Aqu铆 tienes un ejemplo b谩sico de c贸mo definir y usar un enum en C#:

<code> 
enum DiasDeLaSemana
{
    Domingo,
    Lunes,
    Martes,
    Mi茅rcoles,
    Jueves,
    Viernes,
    S谩bado
}

class Program
{
    static void Main()
    {
        DiasDeLaSemana hoy = DiasDeLaSemana.Mi茅rcoles;
        Console.WriteLine("Hoy es " + hoy); // Salida: Hoy es Mi茅rcoles
    }
}

En este ejemplo, DiasDeLaSemana es un enum que agrupa los d铆as de la semana. Dentro del m茅todo Main, se declara una variable hoy de tipo DiasDeLaSemana y se le asigna el valor DiasDeLaSemana.Mi茅rcoles. Finalmente, se imprime el valor de hoy, que es Mi茅rcoles.

Algunos puntos importantes sobre los enum en C#:

Los valores de un enum son de tipo int por defecto, pero puedes especificar expl铆citamente otro tipo de base integral como byte, sbyte, short, ushort, int, uint, long, o ulong usando la sintaxis enum NombreEnum : tipoBase.
Los enum son 煤tiles para representar un conjunto de valores relacionados y conocidos, como d铆as de la semana, estados de un pedido, niveles de acceso, etc.
Por defecto, el primer elemento de un enum tiene el valor 0, y cada elemento sucesivo incrementa el valor en 1. Sin embargo, puedes asignar expl铆citamente valores a los miembros del enum si lo necesitas.

Un poco complejo lo de List<> y lo de enum{} aqu铆 mi codigo

Console.WriteLine("SUPER HEROES INFO");

SuperHero Spiderman = new SuperHero();
SuperHero Batman = new SuperHero();

SuperPoder superVolar = new SuperPoder();
superVolar.Nombre = "Volar";
superVolar.Descripcion = "Capacidad de Volar";
superVolar.nivel = (int)NivelPoder.N8;


SuperPoder SuperVelocidad = new SuperPoder();
SuperVelocidad.Nombre = "Velocidad";
SuperVelocidad.Descripcion = "Poder romper la cara de sonido";
SuperVelocidad.nivel = (int)NivelPoder.N9;



SuperPoder EscaparRapdio = new SuperPoder();
EscaparRapdio.Nombre = "EscaparRapdio";
EscaparRapdio.Descripcion = "PoderEvadirEnemigosPeligrosos";
EscaparRapdio.nivel = (int)NivelPoder.N5;




SuperPoder humo = new SuperPoder();
humo.Nombre = "Humo";
humo.Descripcion = "Poder explotar una capa de Humo ";
humo.nivel = (int)(NivelPoder.N2);


List<SuperPoder> BatmanSuperPoder = new List<SuperPoder>();
BatmanSuperPoder.Add(humo);





List<SuperPoder> PoderSpiderman = new List<SuperPoder>();
PoderSpiderman.Add(EscaparRapdio);










Spiderman.Id = 1;
Spiderman.Nombre = "SpiderMan";
Spiderman.Edad = 16;
Spiderman.EstaEnfermo = false;
Spiderman.IdentidadSecreta = "Peter Parker";
Spiderman.Ciudad = "Nueva York";
Spiderman.FechaNacimiento = "10/08/2001";
Spiderman.SuperPoderes = PoderSpiderman;

Batman.Id = 2;
Batman.Nombre = "Batman";
Batman.Edad = 35;
Batman.EstaEnfermo = false;
Batman.IdentidadSecreta = "Bruce Wayne";
Batman.Ciudad = "Gotham City";
Batman.FechaNacimiento = "19/02/1988";
Batman.SuperPoderes = BatmanSuperPoder;









class SuperHero
{
    public int Id;
    public string Nombre;
    public int Edad;
    public bool EstaEnfermo;
    public string IdentidadSecreta;
    public string Ciudad;
    public string FechaNacimiento;
    public List<SuperPoder> SuperPoderes;
    public bool PuedeVolar;
}

class SuperPoder
{
    public string Nombre;
    public string Descripcion;
    public int nivel;
}

enum NivelPoder
{
    N1, N2, N3, N4, N5, N6, N7, N8, N9
}

Seria bueno que a partir del inicio del proyecto crea las clase en archivo diferentes porque si no estas creando un code small porque las clase est谩n en un solo archivo

Mi aporte

Console.WriteLine("Superheros information");

var canFly = new SuperPower();
canFly.Name = "Volar";
canFly.Description = "Capacidad de volar y planear por los aires";
canFly.Level = LevelPower.LevelTwo;

var superStrength = new SuperPower();
superStrength.Name = "Super fuerza";
superStrength.Description = "Capacidad de fuerza f铆scia extraordinaria";
superStrength.Level = LevelPower.LevelThree;

var mindControl = new SuperPower();
superStrength.Name = "Control mental";
superStrength.Description = "Capacidad de controlar la voluntad de un ser vivo";
superStrength.Level = LevelPower.LevelThree;

// Superman (Marvel) hero
var superman = new SuperHero();

superman.Id = 1;
superman.Name = "Superman";
superman.SecretIdentity = "Clark Ken";
superman.City = "Metropolis";

List<SuperPower> powersSuperman = new List<SuperPower>();
powersSuperman.Add(canFly);
powersSuperman.Add(superStrength);
superman.SuperPowers = powersSuperman;

// Professor X (marvil) hero
var professorX = new SuperHero();

professorX.Id = 2;
professorX.Name = "Yuri";
professorX.SecretIdentity = "Charles Xavier";
professorX.City = "New York City";

List<SuperPower> powersProfessorX = new List<SuperPower>();
powersProfessorX.Add(mindControl);
professorX.SuperPowers = powersProfessorX;

class SuperHero
{
    public int Id;
    public string Name;
    public string SecretIdentity;
    public string City;
    public List<SuperPower> SuperPowers;
    public bool CanFly;
}

class SuperPower
{
    public string Name;
    public string Description;
    public LevelPower Level;
}

enum LevelPower
{
    LevelOne,
    LevelTwo,
    LevelThree
}
Para optimizar la estructura de clases en C#, considera los siguientes enfoques: 1. **Principios de Dise帽o**: Aplica principios como el principio de responsabilidad 煤nica (SRP) y el principio de abierto/cerrado (OCP) para mantener la cohesi贸n y la extensibilidad. 2. **Uso de Herencia y Polimorfismo**: Aprovecha la herencia para reutilizar c贸digo y el polimorfismo para permitir que diferentes clases respondan a la misma interfaz. 3. **Composici贸n sobre Herencia**: En algunos casos, es mejor usar la composici贸n para evitar la rigidez que puede traer la herencia excesiva. 4. **Clases Gen茅ricas**: Utiliza clases gen茅ricas para permitir la reutilizaci贸n del c贸digo sin sacrificar la seguridad de tipos. 5. **Encapsulamiento**: Aseg煤rate de que las propiedades y m茅todos no se expongan innecesariamente, protegiendo as铆 el estado interno de la clase. Estos m茅todos no solo mejorar谩n la estructura de tus clases, sino que tambi茅n facilitar谩n el mantenimiento y la escalabilidad de tu aplicaci贸n.
`kratos.Id = 1;` `kratos.Nombre = "kratos";` `kratos.nivel_del_personaje = 20;` `List<armas> armasdelpersonaje = new List<armas>();` `armasdelpersonaje.Add(escopeta);` `armasdelpersonaje.Add(francotirador);` `kratos.armas=armasdelpersonaje;` `class personaje` `{` ` public string Nombre;` ` public int nivel_del_personaje;` ` public List<armas> armas;` ` public int Id;` `}` `class armas` `{` ` public string Nombre; ` ` public string descripcion;` ` public Nivelpoder nivel;` ` public Nivel_del_arma nivel_requerido;` `}` `enum Nivelpoder` `{` ` NivelUno,` ` NivelDos,` ` NivelTres` `} ` `enum Nivel_del_arma` `{` ` NivelUno,` ` NivelDos,` ` NivelTres,` ` NivelCuatro,` ` NivelCinco,` ` Nivelseis,` ` Nivelciete,` ` Nivelocho,` ` Nivelnueve,` ` Niveldiez` `}`
Me ha costado trabajo seguirle el ritmo a esta clase porque mi ejemplo es un poco diferente y no entend铆a muy bien lo de la lista dentro de la clase, pero creo que ya estoy mejor. Adjunto mi ejercicio: ```js var mathematics = new Subject(); mathematics.SubjectName = "Mathematics"; mathematics.Code = "MATH01"; mathematics.Credits = 3; mathematics.Modality = Modality.InPerson; var english = new Subject(); english.SubjectName = "English"; english.Code = "FL1-ENG"; english.Credits = 4; english.Modality = Modality.Hybrid; var person1 = new Person(); person1.Id = 1; person1.FirstName = "Jacqueline"; person1.LastName = "Jimenez"; person1.Age = 30; person1.Address = "Osterv盲gen 9A"; //person1.Subjects = new[] { "Mathematics", "Physics", "Chemistry" }; //Creating new array values while creating an object - This is not useful after class Subject is created. person1.HasMedicalCondition = false; List<Subject> subjects = new List<Subject>(); subjects.Add(new Subject { SubjectName = "Mathematics", Credits = 3 }); subjects.Add(new Subject { SubjectName = "English", Credits = 3 }); class Person { public int Id; public string FirstName; public string LastName; public int Age; public string Address; public List<Subject> Subjects; //public string[] Subjects; -- - This was used at first cause I didn't have class Subject set neither a way to call a list. Afther Subject class is created I must set the attribute like above. public bool HasMedicalCondition; } class Subject //This is an object list type { public string SubjectName; public string Code; public int Credits; public Modality Modality; } enum Modality { InPerson, Online, Hybrid } ``` var mathematics = new Subject(); mathematics.SubjectName = "Mathematics"; mathematics.Code = "MATH01"; mathematics.Credits = 3; mathematics.Modality = Modality.InPerson; var english = new Subject(); english.SubjectName = "English"; english.Code = "FL1-ENG"; english.Credits = 4; english.Modality = Modality.Hybrid; var person1 = new Person(); person1.Id = 1; person1.FirstName = "Jacqueline"; person1.LastName = "Jimenez"; person1.Age = 30; person1.Address = "Osterv盲gen 9A"; //person1.Subjects = new\[] { "Mathematics", "Physics", "Chemistry" }; //Creating new array values while creating an object - This is not useful after class Subject is created. person1.HasMedicalCondition = false; List\<Subject> subjects = new List\<Subject>(); subjects.Add(new Subject { SubjectName = "Mathematics", Credits = 3 }); subjects.Add(new Subject { SubjectName = "English", Credits = 3 }); class Person { public int Id; public string FirstName; public string LastName; public int Age; public string Address; public List\<Subject> Subjects; //public string\[] Subjects; -- - This was used at first cause I didn't have class Subject set neither a way to call a list. Afther Subject class is created I must set the attribute like above. public bool HasMedicalCondition; } class Subject //This is an object list type { public string SubjectName; public string Code; public int Credits; public Modality Modality; } enum Modality { InPerson, Online, Hybrid }
var CapitanAmerica = new SuperHeroe(); var BatallaCuerpoaCuerpo = new SuperPoder(); BatallaCuerpoaCuerpo.Nombre = "Combate"; BatallaCuerpoaCuerpo.Descripcion = "Capacidad para batallas cuerpo a cuerpo"; BatallaCuerpoaCuerpo.Nivel = NivelPoder.NivelDos; CapitanAmerica.Id = 2; CapitanAmerica.Nombre = "Steve Rogers"; CapitanAmerica.Ciudad = "Brooklyn"; CapitanAmerica.PuedeVolar = false; List\<SuperPoder> poderesCapitanAmerica = new List\<SuperPoder>(); poderesCapitanAmerica.Add(superFuerza); poderesCapitanAmerica.Add(BatallaCuerpoaCuerpo); CapitanAmerica.SuperPoderes = poderesCapitanAmerica;
```c# // See https://aka.ms/new-console-template for more information Console.WriteLine("Actors"); var theDarkKnight = new Film(); theDarkKnight.NameFilm = "The Dark Knight"; theDarkKnight.YearFilm = 2008; theDarkKnight.Stars = NumStars.Star4; var tearsOfTheSun = new Film(); tearsOfTheSun.NameFilm = "Tears of the Sun"; tearsOfTheSun.YearFilm = 2003; tearsOfTheSun.Stars = NumStars.Star3; var multiple = new Film(); multiple.NameFilm = "Multiple"; multiple.YearFilm = 2016; multiple.Stars = NumStars.Star3; var americanPsycho = new Film(); americanPsycho.NameFilm = "American Psycho"; americanPsycho.YearFilm = 2000; americanPsycho.Stars = NumStars.Star3; var person1 = new Actor(); var person2 = new Actor(); person1.Id = 1; person1.Name = "Christian Bale"; person1.Oscar = true; List<Film> filmsPerson1 = new List<Film>(); filmsPerson1.Add(theDarkKnight); filmsPerson1.Add(americanPsycho); person1.Films = filmsPerson1; person2.Id = 2; person2.Name = "Bruce Willis"; person2.Oscar = false; List<Film> filmsPerson2 = new List<Film>(); filmsPerson2.Add(tearsOfTheSun); filmsPerson2.Add(multiple); person2.Films = filmsPerson2; class Actor { public int Id; public string Name; public bool Oscar; public List<Film> Films; } class Film { public string NameFilm; public int YearFilm; public NumStars Stars; } enum NumStars { Star1, Star2, Star3, Star4, Star5 } ```// See <https://aka.ms/new-console-template> for more informationConsole.WriteLine("Actors"); var theDarkKnight = new Film();theDarkKnight.NameFilm = "The Dark Knight";theDarkKnight.YearFilm = 2008;theDarkKnight.Stars = NumStars.Star4; var tearsOfTheSun = new Film();tearsOfTheSun.NameFilm = "Tears of the Sun";tearsOfTheSun.YearFilm = 2003;tearsOfTheSun.Stars = NumStars.Star3; var multiple = new Film();multiple.NameFilm = "Multiple";multiple.YearFilm = 2016;multiple.Stars = NumStars.Star3; var americanPsycho = new Film();americanPsycho.NameFilm = "American Psycho";americanPsycho.YearFilm = 2000;americanPsycho.Stars = NumStars.Star3; var person1 = new Actor();var person2 = new Actor(); person1.Id = 1;person1.Name = "Christian Bale";person1.Oscar = true; List\<Film> filmsPerson1 = new List\<Film>();filmsPerson1.Add(theDarkKnight);filmsPerson1.Add(americanPsycho); person1.Films = filmsPerson1; person2.Id = 2;person2.Name = "Bruce Willis";person2.Oscar = false; List\<Film> filmsPerson2 = new List\<Film>();filmsPerson2.Add(tearsOfTheSun);filmsPerson2.Add(multiple); person2.Films = filmsPerson2; class Actor{ public int Id; public string Name; public bool Oscar; public List\<Film> Films;} class Film{ public string NameFilm; public int YearFilm; public NumStars Stars;} enum NumStars{ Star1, Star2, Star3, Star4, Star5 }
```c# // SuperPowers. var strengthPower = new SuperPower { Name = "Super strength", Description = "The strength that a superhero with this power can have is not human", Element = ElementTypeEnum.Normal, PowerQuality = PowerQualityEnum.Great }; var speedPower = new SuperPower { Name = "Super speed", Description = "With this power, the hero can have a super speed in seconds", Element = ElementTypeEnum.Normal, PowerQuality = PowerQualityEnum.Good }; var windPower = new SuperPower { Name = "Weather control", Description = "Hero can control the weather with this power", Element = ElementTypeEnum.Wind, PowerQuality = PowerQualityEnum.Regular }; var electricPower = new SuperPower { Name = "Thunder generation", Description = "Hero can control thunders with this power", Element = ElementTypeEnum.Electric, PowerQuality = PowerQualityEnum.Great }; // Heroes var firstHero = new Hero(); var secondHero = new Hero(); var thirdHero = new Hero(); // Hero #1 firstHero.ID = 1; firstHero.RealName = "Bob Parr"; firstHero.HeroName = "Mr Incredible"; firstHero.CanFly = false; firstHero.ColorsCostume = ["Red", "Black", "Yellow"]; firstHero.IsHuman = true; List<SuperPower> incrediblePower = new List<SuperPower>(); incrediblePower.Add(strengthPower); firstHero.Powers = incrediblePower; // Hero #2 secondHero.ID = 2; secondHero.RealName = "Barry Allen"; secondHero.HeroName = "Flash"; secondHero.CanFly = false; secondHero.ColorsCostume = ["Red", "Yellow"]; secondHero.IsHuman = true; List<SuperPower> flashPower = new List<SuperPower>(); flashPower.Add(speedPower); secondHero.Powers = flashPower; // Hero #3 thirdHero.ID = 3; thirdHero.RealName = "Ororo Munroe"; thirdHero.HeroName = "Storm"; thirdHero.CanFly = true; thirdHero.ColorsCostume = ["White", "Yellow", "Red", "Black"]; thirdHero.IsHuman = false; List<SuperPower> stormPower = new List<SuperPower>(); stormPower.Add(windPower); stormPower.Add(electricPower); thirdHero.Powers = stormPower; class Hero { public int ID { get; set; } public string? RealName { get; set; } public string? HeroName { get; set; } public bool CanFly { get; set; } public List<string>? ColorsCostume { get; set; } public bool IsHuman { get; set; } public List<SuperPower>? Powers { get; set; } } class SuperPower { public string Name { get; set; } public string Description { get; set; } public ElementTypeEnum Element { get; set; } public PowerQualityEnum PowerQuality { get; set; } } enum ElementTypeEnum { Normal = 10, Electric = 20, Wind = 30 } enum PowerQualityEnum { Regular = 10, Good = 20, Great = 30 } ```
```c# //This is my task amazing examples you gave! var poder_volar = new superPoder(); poder_volar.nombre = "volar"; poder_volar.descripcion = " Capacidad para volar y planear en el aire."; poder_volar.nivel = nivelPoder.Niveldos; var super_fuerza = new superPoder(); super_fuerza.nombre = "fuerza"; super_fuerza.descripcion = "Tiene la habilidad de levantar de todo hasta a lo mas reocndito"; super_fuerza.nivel = nivelPoder.Niveltres; superPoder trueno_poder = new superPoder(); trueno_poder.nombre = "Poder del trueno"; trueno_poder.descripcion = "Tiene el poder de fritar a quien le de la gana"; trueno_poder.nivel = nivelPoder.Niveltres; var Dr_Strange = new SuperHero(); Dr_Strange.Id = 1; Dr_Strange.Nombre = "Doctor Strange"; Dr_Strange.IdentidadSecreta = "Stephen Vincent Strange"; Dr_Strange.PuedeVolar = true; List<superPoder> poderesDr_strange = new List<superPoder>(); poderesDr_strange.Add(poder_volar); poderesDr_strange.Add(super_fuerza); Dr_Strange.Superpoderes = poderesDr_strange; var Thor = new SuperHero(); Thor.Id = 2; Thor.Nombre = "Thor Dios del trueno"; Thor.IdentidadSecreta = "Hijo de Od铆n de Ascar"; Thor.PuedeVolar= true; List<superPoder> thor_poderes = new List<superPoder>(); thor_poderes.Add(trueno_poder); thor_poderes.Add(poder_volar); thor_poderes.Add(super_fuerza); class SuperHero { public int Id; public string Nombre; public string IdentidadSecreta; public string Ciudad; public List<superPoder> Superpoderes; public bool PuedeVolar; } class superPoder { public string nombre; public string descripcion; public nivelPoder nivel; } enum nivelPoder // esto es una enumeraci贸n { Niveluno, Niveldos, Niveltres } ```
using System.Collections.Generic;

var poderVolar = new SuperPoder();
poderVolar.Nombre = "Volar";
poderVolar.Descripcion = "Capacidad de volar y planear en el aire";
poderVolar.Nivel = NivelPoder.NivelDos;

var superfuerza = new SuperPoder();
superfuerza.Nombre = "Superfuerza";
superfuerza.Descripcion = "Capacidad de poseer una fuerza sobre humana";
superfuerza.Nivel = NivelPoder.NivelTres;

var visionNocturna = new SuperPoder();
visionNocturna.Nombre = "Visi贸n nocturna";
visionNocturna.Descripcion = "Capacidad de ver en la oscuridad";
visionNocturna.Nivel = NivelPoder.NivelUno;

var superInteligencia = new SuperPoder();
superInteligencia.Nombre = "Superinteligencia";
superInteligencia.Descripcion = "Capacidad de razonar y pensar de manera r谩pida";
superInteligencia.Nivel = NivelPoder.NivelTres;

var superagilidad = new SuperPoder();
superagilidad.Nombre = "Superagilidad";
superagilidad.Descripcion = "Agilidad sobre humana";
superagilidad.Nivel = NivelPoder.NivelTres;

var habilidadesDeLucha = new SuperPoder();
habilidadesDeLucha.Nombre = "Habilidades para luchar";
habilidadesDeLucha.Descripcion = "Capacidad de luchar profesionalmente";
habilidadesDeLucha.Nivel = NivelPoder.NivelTres;

var superman = new SuperHeroe();
superman.Id = 1;
superman.Name = "Superman";
superman.IdentidadSecreta = "Clark Kent";
superman.Ciudad = "Metr贸polis";
superman.PuedeVolar = true;

List<SuperPoder> poderesSuperman = new List<SuperPoder>;
poderesSuperman.Add(poderVolar);
poderesSuperman.Add(superfuerza);
  
superman.SuperPoderes = poderesSuperman;

var superwoman = new SuperHeroe();
superwoman.Id = 2;
superwoman.Name = "Superwoman";
superwoman.IdentidadSecreta = "Kara Zor-El";
superwoman.Ciudad = "Metr贸polis";

List<SuperPoder> poderesSuperwoman = new List<SuperPoder>;
poderesSuperwoman.Add(poderVolar);
poderesSuperwoman.Add(superfuerza);
  
superwoman.SuperPoderes = poderesSuperwoman;

var batman = new SuperHeroe();
batman.Id = 3;
batman.Name = "Batman";
batman.IdentidadSecreta = "Bruce Wayne";
batman.Ciudad = "Gotham";
batman.PuedeVolar = false;

List<SuperPoder> poderesBatman = new List<SuperPoder>();
poderesBatman.Add(superInteligencia);
poderesBatman.Add(visionNocturna);

batman.SuperPoderes = poderesBatman;

var catwoman = new SuperHeroe();
catwoman.Id = 4;
catwoman.Name = "Catwoman";
catwoman.IdentidadSecreta = "Selina Kyle";
catwoman.Ciudad = "Gotham";
catwoman.PuedeVolar = false;

List<SuperPoder> poderesCatwoman = new List<SuperPoder>();
poderesCatwoman.Add(superagilidad);
poderesCatwoman.Add(habilidadesDeLucha);
  
catwoman.SuperPoderes = poderesCatwoman;


class SuperHeroe
{
    public int Id;
    public string Name;
    public string IdentidadSecreta;
    public string Ciudad;
    public List<SuperPoder> SuperPoderes;
    public bool PuedeVolar;
}

class SuperPoder
{
    public string Nombre;
    public string Descripcion;
    public NivelPoder Nivel;
}

enum NivelPoder
{
    NivelUno,
    NivelDos,
    NivelTres,
}
Hola estoy haciendo el ejercicio pero yo lo estoy enfocando a una escuela me podrian dar retro si voy por buen camino se los agradeceria // See <https://aka.ms/new-console-template> for more information using System.Security.Cryptography.X509Certificates; Console.WriteLine("Hello, World!"); var Espanol = new Subject; Espanol.Id = 1; Espanol.SubjetName = "Espa帽ol"; Espanol.DescriptionSubjet = String.Empty; var Matias = new Alumno(); Matias.Id = 1; Matias.Name = "Matias"; Matias.LastName = "Espinoza"; Matias.Surname = "Gonzalez"; Matias.Age = 9; Matias.Group = "A"; Matias.Grade = 4; Matias.Gender = "M"; Matias.Rating = Scored.Rating7; class Alumno { public int Id; public string Name; public string LastName; public string Surname; public int Age; public string Group; public int Grade; public string \[] Subject ; public string Gender; public int Score; } class Subject { public int Id; public string SubjetName; public string DescriptionSubjet; public Scored Rating; } enum Scored { Rating5, Rating6, Rating7, Rating8, Rating9, Rating10 }
Por mi parte use el AddRange en lugar del Add por si tenemos muchos superpoderes, agregarlos todos superman.CanFly = true; superman.Name = "klart Kent"; List\<SuperPower> superManPowers = new List\<SuperPower>(); superManPowers.AddRange(new SuperPower\[] { Fly, SuperStrength }); superman.SuperPowers = superManPowers;
esta es una forma m谩s r谩pida de crear la lista: ```c# superman.SuperPoderes = new List<SuperPoder> { poderVolar, superFuerza }; ```superman.SuperPoderes = new List\<SuperPoder> { poderVolar, superFuerza };
var PoderVolar = new SuperPoder(); PoderVolar.Nombre = "Volar"; PoderVolar.Descripcion = "Capacidad de volar por los aires"; PoderVolar.Nivel = NivelPoder.NivelDos; var Fuerza = new SuperPoder(); Fuerza.Nombre = "Fuerza"; Fuerza.Descripcion = "Levantar cualquier objeto"; Fuerza.Nivel = NivelPoder.NivelUno; var Plata = new SuperPoder(); Fuerza.Nombre = "Plata"; Fuerza.Descripcion = "Tener Dinero para armar diferentes armas"; Fuerza.Nivel = NivelPoder.NivelUno; var ReducirTama帽o = new SuperPoder(); Fuerza.Nombre = "Reducir Tama帽o"; Fuerza.Descripcion = "Disminuir el tama帽o Original"; Fuerza.Nivel = NivelPoder.NivelTres; var SuperMan = new SuperHeroe(); var BatMan = new SuperHeroe(); var IronMan = new SuperHeroe(); var AntMan = new SuperHeroe(); SuperMan.Id = 1; SuperMan.Nombre = "SuperMan"; SuperMan.IdentidadSecreta = "Clark Kent"; SuperMan.Ciudad = "Metropolis"; SuperMan.Vuela = true; List\<SuperPoder> poderSuperMan = new List\<SuperPoder>(); poderSuperMan.Add(PoderVolar); poderSuperMan.Add(Fuerza); SuperMan.Superpoderes = poderSuperMan; BatMan.Id = 2; BatMan.Nombre = "BatMan"; BatMan.IdentidadSecreta = "Bruce Wayne"; BatMan.Ciudad = "Gotica"; BatMan.Vuela = false; List\<SuperPoder> poderBatMan = new List\<SuperPoder>(); poderBatMan.Add(Plata); BatMan.Superpoderes = poderSuperMan; IronMan.Id = 3; IronMan.Nombre = "IronMan"; IronMan.IdentidadSecreta = "Tonny Stark"; IronMan.Ciudad = "Stamford"; IronMan.Vuela = true; List\<SuperPoder> poderIronMan = new List\<SuperPoder>(); poderIronMan.Add(Plata); poderIronMan.Add(PoderVolar); poderIronMan.Add(Fuerza); IronMan.Superpoderes = poderSuperMan; AntMan.Id = 4; AntMan.Nombre = "AntMan"; AntMan.IdentidadSecreta = "Scott Lang"; AntMan.Ciudad = "Quantumania"; AntMan.Vuela = false; List\<SuperPoder> poderAntMan = new List\<SuperPoder>(); poderAntMan.Add(ReducirTama帽o); AntMan.Superpoderes = poderSuperMan; class SuperHeroe { public int Id; public string Nombre; public string IdentidadSecreta; public string Ciudad; public List\<SuperPoder> Superpoderes; public Boolean Vuela; } class SuperPoder { public String Nombre; public String Descripcion; public NivelPoder Nivel; } enum NivelPoder { NivelUno, NivelDos, NivelTres }
Completo los objetos SuperHeroe que hab铆a generado en las clases anteriores: // Creaci贸n del objeto Acuaman SuperHeroe acuaman = new SuperHeroe(); acuaman.ID = 2; acuaman.Nombre = "Acuaman"; acuaman.IdentidadSecreta = "Arthur Curry"; acuaman.Ciudad = "Atlantis"; acuaman.PuedeVolar = false; List\<SuperPoder> poderesAcuaman = new List\<SuperPoder>(); acuaman.SuperPoderes = poderesAcuaman; var controlarAnimalesMarinos = new SuperPoder(); controlarAnimalesMarinos.Nombre = "Controlar Animales Marinos"; controlarAnimalesMarinos.Descripcion = "Habilidad para comunicarse y controlar animales marinos"; controlarAnimalesMarinos.Nivel = NivelPoder.Nivel2; acuaman.SuperPoderes.Add(controlarAnimalesMarinos); // Creaci贸n del objeto Linterna Verde SuperHeroe linternaVerde = new SuperHeroe(); linternaVerde.ID = 3; linternaVerde.Nombre = "Linterna Verde"; linternaVerde.IdentidadSecreta = "Hal Jordan"; linternaVerde.Ciudad = "Coast City"; linternaVerde.PuedeVolar = true; List\<SuperPoder> poderesLinternaVerde = new List\<SuperPoder>(); linternaVerde.SuperPoderes = poderesLinternaVerde; var anilloPoder = new SuperPoder(); anilloPoder.Nombre = "Anillo de Poder"; anilloPoder.Descripcion = "Anillo que concede superpoderes, incluyendo la creaci贸n de construcciones de luz s贸lida"; anilloPoder.Nivel = NivelPoder.Nivel3; linternaVerde.SuperPoderes.Add(anilloPoder); // Creaci贸n del objeto Mujer Maravilla SuperHeroe mujerMaravilla = new SuperHeroe(); mujerMaravilla.ID = 4; mujerMaravilla.Nombre = "Mujer Maravilla"; mujerMaravilla.IdentidadSecreta = "Diana Prince"; mujerMaravilla.Ciudad = "Themyscira"; mujerMaravilla.PuedeVolar = true; List\<SuperPoder> poderesMujerMaravilla = new List\<SuperPoder>(); mujerMaravilla.SuperPoderes = poderesMujerMaravilla; var fuerzaSobrehumana = new SuperPoder(); fuerzaSobrehumana.Nombre = "Fuerza Sobrehumana"; fuerzaSobrehumana.Descripcion = "Posee fuerza, velocidad y resistencia sobrehumanas"; fuerzaSobrehumana.Nivel = NivelPoder.Nivel2; mujerMaravilla.SuperPoderes.Add(fuerzaSobrehumana); // Creaci贸n del objeto Batman SuperHeroe batman = new SuperHeroe(); batman.ID = 5; batman.Nombre = "Batman"; batman.IdentidadSecreta = "Bruce Wayne"; batman.Ciudad = "Gotham City"; batman.PuedeVolar = false; List\<SuperPoder> poderesBatman = new List\<SuperPoder>(); batman.SuperPoderes = poderesBatman; var inteligenciaNivelGenio = new SuperPoder(); inteligenciaNivelGenio.Nombre = "Inteligencia a Nivel de Genio"; inteligenciaNivelGenio.Descripcion = "Posee una mente brillante y es un estratega t谩ctico excepcional"; inteligenciaNivelGenio.Nivel = NivelPoder.Nivel3; batman.SuperPoderes.Add(inteligenciaNivelGenio);
Hola! Aqu铆 va mi aporte ```js var poderMoverseVelLuz = new SuperPoder(); poderMoverseVelLuz.Nombre = "Velocidad luz"; poderMoverseVelLuz.Descripcion = "Moverse a la velocidad de la luz"; poderMoverseVelLuz.Nivel = NivelPoder.NivelTres; var poderViajeTiempo = new SuperPoder(); poderViajeTiempo.Nombre = "Viajar en el tiempo"; poderViajeTiempo.Nivel = NivelPoder.NivelTres; List<SuperPoder> poderesFlash = new List<SuperPoder>(); poderesFlash.Add(poderMoverseVelLuz); poderesFlash.Add(poderViajeTiempo); var flash = new SuperHeroe(); flash.Id = 1; flash.Nombre = "Flash"; flash.IdentidadSecreta = "Jay Garrick"; flash.Ciudad = "Central City"; flash.PuedeVolar = false; flash.SuperPoderes = poderesFlash; class SuperHeroe { public int Id; public string Nombre; public string IdentidadSecreta; public string Ciudad; public List<SuperPoder> SuperPoderes; public bool PuedeVolar; } class SuperPoder { public string Nombre; public string Descripcion; public NivelPoder Nivel; } enum NivelPoder { NivelUno, NivelDos, NivelTres } ```
```c# // See https://aka.ms/new-console-template for more information Console.WriteLine("Hello, World!"); var poderVolar = new SuperPoder(); poderVolar.Nombre = "Volar"; poderVolar.Descripcion = "Capacidad para volar y planear en el aire"; poderVolar.Nivel = NivelPoder.NivelDos; var superFuerza = new SuperPoder(); superFuerza.Nombre = "Super fuerza"; superFuerza.Nivel = NivelPoder.NivelTres; var sentidoAr谩cnido = new SuperPoder(); sentidoAr谩cnido.Nombre = "Sentido ar谩cnido"; sentidoAr谩cnido.Nivel = NivelPoder.NivelDos; var visionRayosLaser = new SuperPoder(); visionRayosLaser.Nombre = "Visi贸n Rayos L谩ser"; visionRayosLaser.Nivel = NivelPoder.NivelTres; SuperHeroeMarvel superman = new SuperHeroeMarvel(); superman.Id = 1; superman.Nombre = "Superman"; superman.IdentidadSecreta = "Clark Kent"; superman.Ciudad = "Metropolis"; superman.PuedeVolar = true; List<SuperPoder> poderesSuperman = new List<SuperPoder>(); poderesSuperman.Add(superFuerza); poderesSuperman.Add(poderVolar); poderesSuperman.Add(visionRayosLaser); superman.SuperPoderes = poderesSuperman; SuperHeroeMarvel spiderman = new SuperHeroeMarvel(); spiderman.Id = 2; spiderman.Nombre = "Spider-Man"; spiderman.IdentidadSecreta = "Peter Parker"; spiderman.Ciudad = "New York"; spiderman.PuedeVolar = false; List<SuperPoder> poderesSpiderman = new List<SuperPoder>(); poderesSpiderman.Add(sentidoAr谩cnido); poderesSpiderman.Add(superFuerza); spiderman.SuperPoderes = poderesSpiderman; SuperHeroeMarvel thor = new SuperHeroeMarvel(); thor.Id = 3; thor.Nombre = "Thor"; thor.IdentidadSecreta = "Thor"; thor.Ciudad = "Olimpo"; thor.PuedeVolar = true; List<SuperPoder> poderesThor = new List<SuperPoder>(); poderesThor.Add(poderVolar); poderesThor.Add(superFuerza); thor.SuperPoderes = poderesThor; class SuperHeroeMarvel { public int Id; public string Nombre; public string IdentidadSecreta; public string Ciudad; public List<SuperPoder> SuperPoderes; public bool PuedeVolar; } class SuperPoder { public string Nombre; public string Descripcion; public NivelPoder Nivel; } enum NivelPoder { NivelUno, NivelDos, NivelTres } ```// See <https://aka.ms/new-console-template> for more information Console.WriteLine("Hello, World!"); var poderVolar = new SuperPoder(); poderVolar.Nombre = "Volar"; poderVolar.Descripcion = "Capacidad para volar y planear en el aire"; poderVolar.Nivel = NivelPoder.NivelDos; var superFuerza = new SuperPoder(); superFuerza.Nombre = "Super fuerza"; superFuerza.Nivel = NivelPoder.NivelTres; var sentidoAr谩cnido = new SuperPoder(); sentidoAr谩cnido.Nombre = "Sentido ar谩cnido"; sentidoAr谩cnido.Nivel = NivelPoder.NivelDos; var visionRayosLaser = new SuperPoder(); visionRayosLaser.Nombre = "Visi贸n Rayos L谩ser"; visionRayosLaser.Nivel = NivelPoder.NivelTres; SuperHeroeMarvel superman = new SuperHeroeMarvel(); superman.Id = 1; superman.Nombre = "Superman"; superman.IdentidadSecreta = "Clark Kent"; superman.Ciudad = "Metropolis"; superman.PuedeVolar = true; List\<SuperPoder> poderesSuperman = new List\<SuperPoder>(); poderesSuperman.Add(superFuerza); poderesSuperman.Add(poderVolar); poderesSuperman.Add(visionRayosLaser); superman.SuperPoderes = poderesSuperman; SuperHeroeMarvel spiderman = new SuperHeroeMarvel(); spiderman.Id = 2; spiderman.Nombre = "Spider-Man"; spiderman.IdentidadSecreta = "Peter Parker"; spiderman.Ciudad = "New York"; spiderman.PuedeVolar = false; List\<SuperPoder> poderesSpiderman = new List\<SuperPoder>(); poderesSpiderman.Add(sentidoAr谩cnido); poderesSpiderman.Add(superFuerza); spiderman.SuperPoderes = poderesSpiderman; SuperHeroeMarvel thor = new SuperHeroeMarvel(); thor.Id = 3; thor.Nombre = "Thor"; thor.IdentidadSecreta = "Thor"; thor.Ciudad = "Olimpo"; thor.PuedeVolar = true; List\<SuperPoder> poderesThor = new List\<SuperPoder>(); poderesThor.Add(poderVolar); poderesThor.Add(superFuerza); thor.SuperPoderes = poderesThor; class SuperHeroeMarvel { public int Id; public string Nombre; public string IdentidadSecreta; public string Ciudad; public List\<SuperPoder> SuperPoderes; public bool PuedeVolar; } class SuperPoder { public string Nombre; public string Descripcion; public NivelPoder Nivel; } enum NivelPoder { NivelUno, NivelDos, NivelTres }
como saco las llaves? las que estan en el public string superpoderes;
// See https://aka.ms/new-console-template for more information
Console.WriteLine("Viva The Beatles!");

var poderVolar = new SuperPoder();
poderVolar.Nombre = "Volar";
poderVolar.Descripcion = "Capacidad para volar y planear en el aire";
poderVolar.Nivel = NivelPoder.NivelDos;

var superFuerza = new SuperPoder();
superFuerza.Nombre = "Super fuerza";
superFuerza.Nivel = NivelPoder.NivelTres;

var controlarElTiempo = new SuperPoder();
controlarElTiempo.Nombre = "Controlar el tiempo";
controlarElTiempo.Nivel = NivelPoder.NivelTres;

var superman = new SuperHeroe();
superman.Id = 1;
superman.Nombre = "Superman";
superman.IdentidadSecreta = "Clark Kent";
superman.Ciudad = "Metropolis";
superman.PuedeVolar = true;

List<SuperPoder> poderesSuperman = new List<SuperPoder>();
poderesSuperman.Add(poderVolar);
poderesSuperman.Add(superFuerza);
superman.SuperPoderes = poderesSuperman;

var doctorStrange = new SuperHeroe();
doctorStrange.Id = 2;
doctorStrange.Nombre = "Doctor Strange";
doctorStrange.IdentidadSecreta = "Stephen Strange";
doctorStrange.Ciudad = "Global";
doctorStrange.PuedeVolar= true;

List<SuperPoder> poderesDoctorStrange = new List<SuperPoder>();
poderesDoctorStrange.Add(poderVolar);
poderesDoctorStrange.Add(controlarElTiempo);
doctorStrange.SuperPoderes = poderesDoctorStrange;

class SuperHeroe
{
    public int Id;
    public string Nombre;
    public string IdentidadSecreta;
    public string Ciudad;
    public List<SuperPoder> SuperPoderes;
    public bool PuedeVolar;
}

class SuperPoder
{
    public string Nombre;
    public string Descripcion;
    public NivelPoder Nivel;
}

enum NivelPoder
{
    NivelUno,
    NivelDos,
    NivelTres
}
```c# using System; using System.Collections.Generic; // Importar el espacio de nombres para List class Program { // Clase Cargo para representar el cargo en el trabajo class Cargo { public string NombreCargo { get; set; } public Cargo(string nombreCargo) { NombreCargo = nombreCargo; } } // Clase Persona class Persona { // Propiedades de la clase Persona public int Id { get; } // Identificador 煤nico public string Nombre { get; set; } public int Edad { get; set; } public Cargo CargoPersona { get; set; } // Objeto de la clase Cargo // Contador para asignar identificadores 煤nicos private static int contadorIds = 1; // Constructor de la clase Persona public Persona(string nombre, int edad, Cargo cargo) { Id = contadorIds++; // Asignar un identificador 煤nico Nombre = nombre; Edad = edad; CargoPersona = cargo; } // M茅todo para mostrar informaci贸n de la persona public void MostrarInformacion() { Console.WriteLine($"ID: {Id}"); Console.WriteLine($"Nombre: {Nombre}"); Console.WriteLine($"Edad: {Edad} a帽os"); Console.WriteLine($"Cargo: {CargoPersona.NombreCargo}"); } } static void Main() { // Crear una lista de cargos disponibles List<Cargo> cargosDisponibles = new List<Cargo> { new Cargo("Gerente"), new Cargo("Desarrollador"), new Cargo("Dise帽ador"), new Cargo("Analista") }; // Crear objetos de la clase Persona asignando cargos Persona persona1 = new Persona("Juan", 30, cargosDisponibles[0]); // Asignar el primer cargo Persona persona2 = new Persona("Mar铆a", 25, cargosDisponibles[1]); // Asignar el segundo cargo // Acceder a las propiedades y m茅todos de los objetos Console.WriteLine("Informaci贸n de persona1:"); persona1.MostrarInformacion(); Console.WriteLine("\nInformaci贸n de persona2:"); persona2.MostrarInformacion(); } } ```using System; using System.Collections.Generic; // Importar el espacio de nombres para List class Program { // Clase Cargo para representar el cargo en el trabajo class Cargo { public string NombreCargo { get; set; } public Cargo(string nombreCargo) { NombreCargo = nombreCargo; } } // Clase Persona class Persona { // Propiedades de la clase Persona public int Id { get; } // Identificador 煤nico public string Nombre { get; set; } public int Edad { get; set; } public Cargo CargoPersona { get; set; } // Objeto de la clase Cargo // Contador para asignar identificadores 煤nicos private static int contadorIds = 1; // Constructor de la clase Persona public Persona(string nombre, int edad, Cargo cargo) { Id = contadorIds++; // Asignar un identificador 煤nico Nombre = nombre; Edad = edad; CargoPersona = cargo; } // M茅todo para mostrar informaci贸n de la persona public void MostrarInformacion() { Console.WriteLine($"ID: {Id}"); Console.WriteLine($"Nombre: {Nombre}"); Console.WriteLine($"Edad: {Edad} a帽os"); Console.WriteLine($"Cargo: {CargoPersona.NombreCargo}"); } } static void Main() { // Crear una lista de cargos disponibles List\<Cargo> cargosDisponibles = new List\<Cargo> { new Cargo("Gerente"), new Cargo("Desarrollador"), new Cargo("Dise帽ador"), new Cargo("Analista") }; // Crear objetos de la clase Persona asignando cargos Persona persona1 = new Persona("Juan", 30, cargosDisponibles\[0]); // Asignar el primer cargo Persona persona2 = new Persona("Mar铆a", 25, cargosDisponibles\[1]); // Asignar el segundo cargo // Acceder a las propiedades y m茅todos de los objetos Console.WriteLine("Informaci贸n de persona1:"); persona1.MostrarInformacion(); Console.WriteLine("\nInformaci贸n de persona2:"); persona2.MostrarInformacion(); } }

me pueden colaborar en la linea #21 del proyecto de ejercicio, aqui en esta parte .

List<SuperPoder> poderesSuperman = new List<SuperPoder>();
poderesSuperman.Add(superFuerza);
poderesSuperman.Add(poderVolar);
superman.SuperPoderes = poderesSuperman;
Mi codigo con dos superheroes instanciados: //Instanciando el segundo superheroe: SuperHeroe Deadpool = new SuperHeroe(); Deadpool.id = 2; Deadpool.Name = "Deadpool"; Deadpool.IdentidadSecreta = "Wade Wilson"; Deadpool.Ciudad = "New York"; Deadpool.PuedeVolar = false; //Instanciando los poderes del segundo superheroe: var SuperSalto = new SuperPoder(); SuperSalto.Nombre = "Super salto"; SuperSalto.Descripcion = "Tener la capacidad de dar un super salto."; SuperSalto.Nivel = NivelPoder.NivelTres; //Instanciando el segundo superpoder del segundo superheroe: var superRegeneracion = new SuperPoder(); superRegeneracion.Nombre = "Super Regeneracion"; superRegeneracion.Descripcion = "Tener la super capacidad de regenerarse en el menor tiempo posible."; superRegeneracion.Nivel = NivelPoder.NivelCuatro; //creando la lista de los superpoderes del segundo superheroe: List\<SuperPoder> poderesDeadpool = new List\<SuperPoder>(); poderesDeadpool.Add(SuperSalto); poderesDeadpool.Add(superRegeneracion); //Instanciando el primer superheroe: var superman = new SuperHeroe(); superman.id = 1; superman.Name = "Superman"; superman.IdentidadSecreta = "Clark Kent"; superman.Ciudad = "Metropolis"; superman.PuedeVolar = true; //Instanciando los poderes del primer superheroe var poderVolar = new SuperPoder(); poderVolar.Nombre = "volar"; poderVolar.Descripcion = "Capacidad para volar en el aire."; poderVolar.Nivel = NivelPoder.NivelTres; //Instanciado la fuerza del primer superheroe: var superFuerza = new SuperPoder(); superFuerza.Nombre = "Super Fuerza"; superFuerza.Descripcion = "Capacidad de tener super fuerza"; superFuerza.Nivel = NivelPoder.NivelCinco; //Creando la lista de los superpoderes del primer superheroe: List\<SuperPoder> poderesSuperman = new List\<SuperPoder>(); poderesSuperman.Add(poderVolar); poderesSuperman.Add(superFuerza); superman.SuperPoderes = poderesSuperman; class SuperHeroe { public int id; public string Name; public string IdentidadSecreta; public string Ciudad; public List\<SuperPoder> SuperPoderes; public bool PuedeVolar; public string equipo; } class SuperPoder { public string Nombre; public string Descripcion; public NivelPoder Nivel; //Nivel de poder (0 a 5) } enum NivelPoder { NivelUno, NivelDos, NivelTres, NivelCuatro, NivelCinco, NivelSeis, NivelSiete, NivelOcho, NivelNueve, NivelDiez }
```c# var humbucker_1 = new PickUp("Humbucker", "One bar magnets"); Guitar ibanez_1 = new Guitar(1, "Ibanez", "AZ24027", "orange", 6, 22); ibanez_1.pickUps = new[] { humbucker_1, humbucker_1 }; ArrayList charac = ibanez_1.getcharacteristics(); for (int i = 0; i < charac.Count; i++) { Console.WriteLine(charac[i]); } for (int i = 0;i < ibanez_1.pickUps.Length; i++) { Console.WriteLine("Pick up: " + ibanez_1.pickUps[i].type); } class Guitar { int id; string brand; string model; string bodyColor; int stringAmount; int fretAmount; public PickUp[] pickUps; public Guitar(int id, string brand,string model, string color, int stringAmount, int fretAmount) { this.id = id; this.brand = brand; this.model = model; bodyColor = color; this.stringAmount = stringAmount; this.fretAmount = fretAmount; } public ArrayList getcharacteristics() { ArrayList characteristics = new ArrayList(); characteristics.Add(id); characteristics.Add(brand); characteristics.Add(model); characteristics.Add(bodyColor); characteristics.Add(stringAmount); characteristics.Add(fretAmount); return characteristics; } } class PickUp { public string type; public string components; public PickUp(string type, string components) { this.type = type; this.components = components; } } ```var humbucker\_1 = new PickUp("Humbucker", "One bar magnets"); Guitar ibanez\_1 = new Guitar(1, "Ibanez", "AZ24027", "orange", 6, 22); ibanez\_1.pickUps = new\[] { humbucker\_1, humbucker\_1 }; ArrayList charac = ibanez\_1.getcharacteristics(); for (int i = 0; i < charac.Count; i++) { Console.WriteLine(charac\[i]); } for (int i = 0;i < ibanez\_1.pickUps.Length; i++) { Console.WriteLine("Pick up: " + ibanez\_1.pickUps\[i].type); } class Guitar { int id; string brand; string model; string bodyColor; int stringAmount; int fretAmount; public PickUp\[] pickUps; public Guitar(int id, string brand,string model, string color, int stringAmount, int fretAmount) { this.id = id; this.brand = brand; this.model = model; bodyColor = color; this.stringAmount = stringAmount; this.fretAmount = fretAmount; } public ArrayList getcharacteristics() { ArrayList characteristics = new ArrayList(); characteristics.Add(id); characteristics.Add(brand); characteristics.Add(model); characteristics.Add(bodyColor); characteristics.Add(stringAmount); characteristics.Add(fretAmount); return characteristics; } } class PickUp { public string type; public string components; public PickUp(string type, string components) { this.type = type; this.components = components; } }
Yo hice mi codigo enfocado a la clasificacion de los seresvivos, y para implementar objetos en listas utilizo mascotas ```c# Perro mascota1 = new Perro(); mascota1.raza = raza.Labrador; mascota1.habitad = habitad.terrestres; mascota1.esqueleto = esqueleto.vertebrados; mascota1.estado = estado.Vivo; Perro mascota2 = new Perro(); mascota2.raza = raza.Yorkshire; mascota2.habitad = habitad.terrestres; mascota2.esqueleto = esqueleto.vertebrados; mascota1.estado = estado.Vivo; Humano humano = new Humano(); humano.nombre = "Brayan"; humano.esqueleto = esqueleto.vertebrados; humano.habitad = habitad.terrestres; humano.estado = estado.Vivo; List<Perro> mascotas = new List<Perro>(); mascotas.Add(mascota1); mascotas.Add(mascota2); class SerVivo { public estado condicion; } class Animales : SerVivo { public estado estado; public reproduccion reproduccion; public habitad habitad; public esqueleto esqueleto; } class Humano : Animales { public string nombre; } class Perro : Animales { public raza raza; } enum estado { Vivo, Muerto, Invernando, } enum reproduccion { oviparos, viv铆paros, ovoviviparos } enum habitad { aereos, acu谩ticos, terrestres } enum esqueleto { vertebrados, invertebrados } enum raza { Pug_Carlino, Shih_Tzu, Yorkshire, Pitbull, Dalmatas, Pastor_Alem谩n, Labrador, Husky_Siberiano } ```Perro mascota1 = new Perro(); mascota1.raza = raza.Labrador; mascota1.habitad = habitad.terrestres; mascota1.esqueleto = esqueleto.vertebrados; mascota1.estado = estado.Vivo; Perro mascota2 = new Perro(); mascota2.raza = raza.Yorkshire; mascota2.habitad = habitad.terrestres; mascota2.esqueleto = esqueleto.vertebrados; mascota1.estado = estado.Vivo; Humano humano = new Humano(); humano.nombre = "Brayan"; humano.esqueleto = esqueleto.vertebrados; humano.habitad = habitad.terrestres; humano.estado = estado.Vivo; List\<Perro> mascotas = new List\<Perro>(); mascotas.Add(mascota1); mascotas.Add(mascota2); class SerVivo { public estado condicion; } class Animales : SerVivo { public estado estado; public reproduccion reproduccion; public habitad habitad; public esqueleto esqueleto; } class Humano : Animales { public string nombre; } class Perro : Animales { public raza raza; } enum estado { Vivo, Muerto, Invernando, } enum reproduccion { oviparos, viv铆paros, ovoviviparos } enum habitad { aereos, acu谩ticos, terrestres } enum esqueleto { vertebrados, invertebrados } enum raza { Pug\_Carlino, Shih\_Tzu, Yorkshire, Pitbull, Dalmatas, Pastor\_Alem谩n, Labrador, Husky\_Siberiano }
ni caso a la pregunta soy idiota
a mi me da error , no se si sera por la distinta verison de net ![](https://static.platzi.com/media/user_upload/image-3c1af443-07f5-497c-9289-842ecc13c174.jpg)
```js // Productos del mercado var Mango = new Compra(); Mango.Id = 00123; Mango.Tipo = "Mango Dulce"; Mango.Costo = 1.43; // BTC Mango.Ubicacion = Ubicacion.PrimerPasillo; var Carne = new Compra(); Carne.Id = 01234; Carne.Tipo = "Lomo Superior"; Carne.Costo = 5.65; Carne.Ubicacion = Ubicacion.TercerPasillo; var Yogurt = new Compra(); Yogurt.Id = 03563; Yogurt.Tipo = "yogo Yogo"; Yogurt.Costo = 0.83; Yogurt.Ubicacion = Ubicacion.SegundoPasillo; //Clientes var Cliente_01 = new Cliente(); Cliente_01.Id = 1; Cliente_01.Name = "Jorge"; Cliente_01.Lastname = "Gutierres"; Cliente_01.Edad = 33; Cliente_01.High = 1.87; Cliente_01.Women = false; List<Compra> CompraUsuario_01 = new List<Compra>(); CompraUsuario_01.Add(Mango); CompraUsuario_01.Add(Yogurt); Cliente_01.compra = CompraUsuario_01; var Cliente_02 = new Cliente(); Cliente_02.Id = 2; Cliente_02.Name = "Andres"; Cliente_02.Lastname = "Escobar"; Cliente_02.Edad = 51; Cliente_02.High = 1.77; Cliente_02.Women = false; List<Compra> CompraUsuario_02 = new List<Compra>(); CompraUsuario_02.Add(Mango); CompraUsuario_02.Add(Carne); Cliente_02.compra = CompraUsuario_02; var Cliente_03 = new Cliente(); Cliente_03.Id = 3; Cliente_03.Name = "Laura"; Cliente_03.Lastname = "Cotorra"; Cliente_03.Edad = 20; Cliente_03.High = 1.57; Cliente_03.Women = true; List<Compra> CompraUsuario_03 = new List<Compra>(); CompraUsuario_03.Add(Yogurt); CompraUsuario_03.Add(Carne); Cliente_03.compra = CompraUsuario_03; //clases class Cliente { public int Id { get; set; } public string Lastname { get; set; } public int Edad { get; set; } public string Name { get; set; } public double High { get; set; } public List<Compra> compra; public bool Women; } class Compra { public string Tipo; public int Id; public double Costo; public Ubicacion Ubicacion; } enum Ubicacion { PrimerPasillo, SegundoPasillo, TercerPasillo, } ```Quiero compartir mi ejercicio, aunque no maneja la misma dinamica propuesta quise implementar un ejemplo mio. :)
Mi aporte :) ```c# var poderVolar = new SuperPoder(); poderVolar.Nombre = "Volar"; poderVolar.Descripcion = "Capacidad de volar y planear a voluntad"; poderVolar.Nivel = NivelPoder.NivelDos; var superFuerza = new SuperPoder(); superFuerza.Nombre = "Super Fuerza"; superFuerza.Descripcion = "Fuerza subrehumana"; superFuerza.Nivel = NivelPoder.NivelTres; var peleador = new SuperPoder(); peleador.Nombre = "Peleador"; peleador.Descripcion = "Habilidad de combate cuerpo a cuerpo"; peleador.Nivel = NivelPoder.NivelDos; var rayosLazer = new SuperPoder(); rayosLazer.Nombre = "Rayos Lazer"; rayosLazer.Descripcion = "Lanzar rayos de calor"; rayosLazer.Nivel = NivelPoder.NivelTres; var inteligencia = new SuperPoder(); inteligencia.Nombre = "Super Inteligencia"; inteligencia.Descripcion = "Capacidad de crear armas y/o estrategias de combate"; inteligencia.Nivel = NivelPoder.NivelUno; var magia = new SuperPoder(); magia.Nombre = "Habilidades magicas"; magia.Descripcion = "Capacidad de lanzar hechizos ya sea para el combate o para otras utilidades"; magia.Nivel = NivelPoder.NivelTres; //SuperMan var superman = new SuperHeroe(); superman.Id = 1; superman.Nombre = "Superman"; superman.IdentidadSecreta = "Clark Kent"; superman.Ciudad = "Metropolis"; List<SuperPoder> poderesSuperman = new List<SuperPoder>(); poderesSuperman.Add(superFuerza); poderesSuperman.Add(poderVolar); poderesSuperman.Add(rayosLazer); superman.SuperPoderes = poderesSuperman; superman.PuedeVolar = true; //Cap America var capAmerica = new SuperHeroe(); capAmerica.Id = 2; capAmerica.Nombre = "Capitan America"; capAmerica.IdentidadSecreta = "Steve Rogers"; capAmerica.PuedeVolar = false; capAmerica.Ciudad = "New York"; List<SuperPoder> poderesCapAmerica = new List<SuperPoder>(); poderesCapAmerica.Add(superFuerza); poderesCapAmerica.Add(peleador); capAmerica.SuperPoderes = poderesCapAmerica; //IronMan var ironMan = new SuperHeroe(); ironMan.Id = 3; ironMan.Nombre = "IronMan"; ironMan.IdentidadSecreta = "Tony Stark"; ironMan.PuedeVolar=false; ironMan.Ciudad = null; List<SuperPoder> poderesIronMan=new List<SuperPoder>(); poderesIronMan.Add(superFuerza); poderesIronMan.Add(inteligencia); poderesIronMan.Add(poderVolar); poderesIronMan.Add(rayosLazer); ironMan.SuperPoderes= poderesIronMan; //Dr Strange var drStrange = new SuperHeroe(); drStrange.Id = 4; drStrange.Nombre = "Doctor Strage"; drStrange.IdentidadSecreta = "Steven Strange"; drStrange.PuedeVolar = false; drStrange.Ciudad = null; List<SuperPoder> poderesDrStrange = new List<SuperPoder>(); poderesDrStrange.Add(inteligencia); poderesDrStrange.Add(magia); drStrange.SuperPoderes = poderesDrStrange; //Mostrar Poderes de superman Console.WriteLine($"super herore: {superman.Nombre}"); Console.WriteLine("Super Poderes : "); for (int i = 0; i < superman.SuperPoderes.Count; i++) { Console.WriteLine(" "+superman.SuperPoderes[i].Nombre); } class SuperHeroe { public int Id; public string? Nombre; public string? IdentidadSecreta; public string? Ciudad; public List<SuperPoder>? SuperPoderes; public bool PuedeVolar; } class SuperPoder { public string? Nombre; public string? Descripcion; public NivelPoder Nivel; } enum NivelPoder { NivelUno, NivelDos, NivelTres } ```