No tienes acceso a esta clase

隆Contin煤a aprendiendo! 脷nete y comienza a potenciar tu carrera

M茅todos dentro de una clase

9/19
Recursos

Aportes 11

Preguntas 1

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad?

Como recomendaci贸n al profe Miguel, para estos temas educativos es mucho m谩s f谩cil para uno como estudiante entender si en lugar de poner cosas como:

var item in SuperPoderes

Pones:
var poder in SuperPoderes

Obviamente es lo mismo porque solamente es una variable, pero es mucho m谩s f谩cil de entender para quien lee el c贸digo si ponemos un nombre que corresponda al objeto que vamos a iterar, en lugar de poner algo gen茅rico como 鈥渋tem鈥.

Solo por comentar , que mientras estaba realizando estos cursos , por fin , despues de 2 a帽os de busqueda , me ha salido trabajo de programador. Tengo 40 a帽os y ha sido dificil .Esto es una carrera de fondo , asi que si estan ahi pensando en rendirse , aunque se que hay dias que es dificil , no cejen en el empe帽o y luchen por una vida mejor

馃挕 Esta imagen ilustra muy bien la diferencia entre clases, objetos, atributos y m茅todos:

using System.Text;

FinishAttack elephantGun = new FinishAttack();
elephantGun.Name = "Elephant Gun";
elephantGun.Description = "Giant fist wrapped in weaponry haki";
elephantGun.Damage = 200.5;

FinishAttack redHawk = new FinishAttack();
redHawk.Name = "Red Hawk";
redHawk.Description = "Rubber Fist wrapped in weaponry haki and fire";
redHawk.Damage = 280.5;

DevilFruit gomugomu = new DevilFruit();
gomugomu.Name = "Gomu Gomu No Mi";
gomugomu.Description = "The User have the complex of rubber and in his awakening converts into Nika God";
gomugomu.Type = TypeDevilFruit.Zoan;

OnePieceCharacter luffy = new OnePieceCharacter();
luffy.Name = "Monkey D. Luffy";
luffy.Description = "Future King of Pirates";
luffy.Occupation = Occupation.Pirate;
luffy.HaveFruit = true;
luffy.Fruit = gomugomu;
luffy.FinishAtacks.Add(elephantGun);
luffy.FinishAtacks.Add(redHawk);

string infoLuffy = luffy.GetInfo();

Console.WriteLine("ONE PIECE GAME:");
Console.WriteLine(infoLuffy);

class OnePieceCharacter
{
    public int Id;
    public string Name;
    public string Description;
    public Occupation Occupation;
    public bool HaveFruit;
    public DevilFruit? Fruit;
    public List<FinishAttack> FinishAtacks;
    public double Life;

    public OnePieceCharacter()
    {
        Id = 1;
        Occupation = Occupation.Civil;
        FinishAtacks = new List<FinishAttack>();
        Life = 1000d;
        HaveFruit = false;
        Fruit = null;
    }

    public string GetInfo()
    {
        StringBuilder sb = new StringBuilder();
        sb.AppendLine($"Nombre: {Name}");
        sb.AppendLine($"Descripcion: {Description}");
        sb.AppendLine($"Ocupacion: {Occupation}");
        if (Fruit != null)
        {
            sb.AppendLine($"Fruta del diablo: {Fruit?.Name}");
        } else
        {
            sb.AppendLine($"Fruta del diablo: No tiene");
        }
        foreach (var atack in FinishAtacks)
        {
            sb.AppendLine($"Ataque: {atack.Name}  ->  {atack.Damage} damage");

        }

        return sb.ToString();
    }
}


class DevilFruit
{
    public string Name;
    public string Description;
    public TypeDevilFruit Type;

    public DevilFruit()
    {
        Type = TypeDevilFruit.Paramecia;
    }
}

enum Occupation
{
    Civil,
    Pirate,
    Marine,
    Revolutionary
}
enum TypeDevilFruit
{
    Paramecia,
    Zoan,
    Logia
}

class FinishAttack
{
    public string Name;
    public string Description;
    public double Damage;

    public FinishAttack()
    {
        Damage = 10d;
    }
}

M茅todos dentro de una clase en C# POO:

En resumen:

  • Los m茅todos son acciones que una clase puede realizar.

  • Se definen dentro de la clase con una estructura similar a una funci贸n.

  • Permiten encapsular funcionalidad y reutilizarla.

  • Pueden tener diferentes tipos de acceso (public, private, etc.)

  • Pueden tener par谩metros para recibir datos y devolver valores.

Ejemplo:

public class Persona
{
    public void Saludar()
    {
        Console.WriteLine("Hola!");
    }

    public string ObtenerNombre(string nombre)
    {
        return nombre;
    }
}

Beneficios:

  • Modularidad: Dividen el c贸digo en partes m谩s peque帽as y manejables.

  • Reutilizaci贸n: Permiten usar la misma funcionalidad en diferentes partes del c贸digo.

  • Encapsulamiento: Ocultan detalles de implementaci贸n y solo exponen la funcionalidad necesaria.

```c# // See https://aka.ms/new-console-template for more information 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 visi贸nRayosLaser = new SuperPoder(); visi贸nRayosLaser.Nombre = "Visi贸n Rayos L谩ser"; visi贸nRayosLaser.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(visi贸nRayosLaser); superman.SuperPoderes = poderesSuperman; superman.UsarSuperPoderes(); 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; spiderman.UsarSuperPoderes(); 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; thor.UsarSuperPoderes(); class SuperHeroeMarvel { public int Id=1; public string Nombre; public string IdentidadSecreta; public string Ciudad; public List<SuperPoder> SuperPoderes =new List<SuperPoder>(); public bool PuedeVolar; public SuperHeroeMarvel() { Id = 1; SuperPoderes= new List<SuperPoder>(); PuedeVolar = false; } public void UsarSuperPoderes() { foreach (var item in SuperPoderes) { Console.WriteLine($"{Nombre} est谩 usando el super poder {item.Nombre}!!"); } } } class SuperPoder { public string Nombre; public string Descripcion; public NivelPoder Nivel; public SuperPoder() { Nivel = NivelPoder.NivelUno; } } enum NivelPoder { NivelUno, NivelDos, NivelTres } ```

Debe publicar en el curso el codigo que va implementando, para poder copiarlo o comparar con lo que uno transcribe, y sea de ayuda

string resultSuperPoderes = superma.UsarSuperPoderes();
Console.WriteLine(resultSuperPoderes);

StringBuilder es una clase en C# que se utiliza para representar una cadena de caracteres mutable. A diferencia de las cadenas de caracteres normales (string) en .NET, que son inmutables, StringBuilder permite modificar el contenido de la cadena sin generar una nueva instancia de cadena cada vez que se realiza una modificaci贸n. Esto lo hace especialmente 煤til para operaciones que requieren cambios frecuentes en el contenido de la cadena, como la concatenaci贸n repetida, porque mejora el rendimiento al reducir la cantidad de objetos string innecesarios creados en la memoria.

Este c贸digo crea un StringBuilder, le a帽ade algunas l铆neas de texto utilizando AppendLine y luego imprime el resultado final.

<code> 
using System;
using System.Text;

class Program
{
    static void Main()
    {
        // Crear una instancia de StringBuilder.
        StringBuilder sb = new StringBuilder();

        // A帽adir algunas l铆neas de texto.
        sb.AppendLine("Primera l铆nea.");
        sb.AppendLine("Segunda l铆nea.");
        sb.AppendLine("Tercera l铆nea.");

        // Tambi茅n se puede a帽adir texto sin un salto de l铆nea al final.
        sb.Append("Final sin salto de l铆nea.");

        // Convertir el StringBuilder a string y mostrar el resultado.
        string resultado = sb.ToString();
        Console.WriteLine(resultado);
    }
}

se crea un objeto StringBuilder llamado sb. Luego, se utiliza el m茅todo AppendLine para a帽adir tres l铆neas de texto a sb, cada una seguida de un salto de l铆nea. Despu茅s, se a帽ade una l铆nea sin salto de l铆nea al final usando el m茅todo Append. Finalmente, se convierte el contenido de sb a un string usando el m茅todo ToString y se imprime en la consola.

La salida del programa ser铆a:

<code> 
Primera l铆nea.
Segunda l铆nea.
Tercera l铆nea.
Final sin salto de l铆nea.

// M茅todo Adicional para la Clase SuperHeroe: // Descripci贸n: Este m茅todo, llamado GritarNombre, permite que el superh茅roe imprima en consola un mensaje proclamando su nombre y su determinaci贸n para defender la ciudad. public void GritarNombre() { Console.WriteLine($"隆Soy {Nombre} y defender茅 la ciudad!"); } // Ejemplo de invocaci贸n Superman.GritarNombre(); // M茅todo Adicional para la Clase SuperPoder: // Descripci贸n: El m茅todo ObtenerInformacion devuelve una cadena que contiene informaci贸n detallada sobre el superpoder, incluyendo nombre, descripci贸n y nivel. public string ObtenerInformacion() { return $"Superpoder: {Nombre}\nDescripci贸n: {Descripcion}\nNivel: {Nivel}"; } // Ejemplo invocaci贸n string infoPoderVolar = poderVolar.ObtenerInformacion(); Console.WriteLine(infoPoderVolar);
Mi aporte basado en uno de mis juegos favoritos, Monster Hunter! ```js using System.Text; Monster Rath00 = new() { name = "Rathalos", specie = Species.FlyingWyvern, weakness = "Dragon", resistance = "Fire", location = Locations.AncientForest, }; Console.WriteLine($"Name: {Rath00.name}"); Console.WriteLine($"Specie: {Rath00.specie}"); Console.WriteLine($"Weakness: {Rath00.weakness}"); Console.WriteLine($"Resistance: {Rath00.resistance}"); Console.WriteLine($"Location: {Rath00.location}"); Rath00.Attack(); Rath00.Move(); Console.WriteLine(Rath00.GetMonster()); class Monster { // VARIABLES // public string name; public Species specie; public string weakness; public string resistance; public Locations location; // CONSTRUCTOR // public Monster() { name = ""; weakness = ""; resistance = ""; } // METHODS // public void Move() { Console.WriteLine($"{name} is moving"); } public void Attack() { Console.WriteLine($"{name} hits!"); } public string GetMonster() { StringBuilder sb = new(); sb.AppendLine($"This monster is called {name}, you can found it in {location}"); return sb.ToString(); } } enum Species { FlyingWyvern, BirdWyvern, BruteWyvern, ElderDragon } enum Locations { AncientForest, WildspireWaste, CoralHighlands, RottenVale, EldersRecess } ```