본문 바로가기

C# 개인 공부 기록용/어소트락 게임아카데미 - C# 무료강의[2019] 총48강

[C# 강의 28화]오버로딩

출처 : https://www.youtube.com/watch?v=_N7mccAyXag&list=PL4SIC1d_ab-Y-bBKojxhtFWwNpawMM1h5&index=28

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

enum DMGTYPE
{
    PYDMG,
    FIREDMG,
    ICEDMG
}

class Player
{
    // 물리 방어
    int ATTDef = 5;
    // 불 방어
    int FireDef = 5;
    // 얼음 방어
    int IceDef = 5;
    int HP = 100;

    public Player()
    {

    }

    public Player(int _HP)
    {
        HP = _HP;
    }

    static void Func(int _Value)
    {

    }

    static void Func(int _Value, int _Value2)
    {

    }

    // Damageint
    // 함수 오버로딩 
    public void Damage(int _Damage)
    {
        HP -= _Damage;
    }

    public void Damage(float _Damage)
    {

    }

    // Damagefloatint
    public void Damage(float _Damage, int _Type)
    {

    }

    // Damageintint
    public void Damage(int _Damage, DMGTYPE _Type)
    {
        switch (_Type)
        {
            case DMGTYPE.PYDMG:
                _Damage -= ATTDef;
                break;
            case DMGTYPE.FIREDMG:
                _Damage -= FireDef;
                break;
            case DMGTYPE.ICEDMG:
                _Damage -= IceDef;
                break;
            default:
                break;
        }

        Damage(_Damage);
    }
}

namespace _29OverLoading
{
    class Program
    {
        static void Main(string[] args)
        {
            // Player NewPlayer = new Player();
            Player NewPlayer = new Player(1000);

            NewPlayer.Damage(100, DMGTYPE.FIREDMG);

        }
    }
}