23.04.10 Day50

오윤범·2023년 4월 10일
0

C#

AbstractClass 추상 클래스

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

namespace cs20_abstractClass
{
    abstract class AbstractParent
    {
        protected void MethodA()
        {
            Console.WriteLine("AbstractParent.MethodA()");
        }
        public void MethodB() // 클래스와 동일
        {
            Console.WriteLine("AbstractParent.MethodB()");
        }
        public abstract void MethodC();// 선언만, 상속받는 곳에서 구현 해야함
    }
    class Child : AbstractParent
    {
        public override void MethodC()//추상 메서드 구현
        {
            Console.WriteLine("Child.MethodC()/Abstract Method");
            MethodA();//protected는 자식클래스 내에서는 사용 가능
        }
    }
    internal class Program
    {
        static void Main(string[] args)
        {
            AbstractParent parent = new Child();
            // parent.MethodA(); methodA가 protected이기에 접근 불가
            parent.MethodB();
            parent.MethodC();
        }
    }
}

Property

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

namespace cs21_property
{
    class Boiler
    {
        private int temp;
        #region<property>
        public int Temp
        {
            get { return temp; }
            set 
            { 
                if(value<=10 || value>=70)
                {
                    temp = 10; // default
                }
                else
                {
                    temp = value;
                }
            }
        }
        #endregion
        //get;set , SetTemp,GetTemp 비교
        #region<GetTemp,SetTemp 메서드 선언>
        //public void SetTemp(int temp)
        //{
        //    if (temp <= 10 || temp >= 70)
        //    {
        //        Console.WriteLine("수온이 너무 낮거나 높음");
        //    }
        //    else
        //    {
        //        this.temp = temp;
        //    }
        //}
        //public int GetTemp() { return this.temp; }
        #endregion
    }
    internal class Program
    {
        static void Main(string[] args)
        {
            Boiler boiler = new Boiler();
            boiler.Temp = 5000;
            Console.WriteLine(boiler.Temp); //온도 범위 넘어가기에 기본 온도 10도 출력
        }
    }
}

ArrayList

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

namespace cs22_collection
{
    class MyList
    {
        int[] array;
        public MyList()
        {
            array = new int[3];
        }
        public int Length
        {
            get { return array.Length; }
        }
        public int this[int index]
        {
            get { return array[index]; }
            set 
            {
                if(index>=array.Length)//array의 배열 크기보다 커지면
                {
                    Array.Resize<int>(ref array, index + 1);
                    Console.WriteLine("MyList Resized : {0}", array.Length);
                }
                array[index] = value; // array에 value 값 넣기
            }
        }
    }
    internal class Program
    {
        static void Main(string[] args)
        {
            int[] array = new int[5];
            array[0] = 1;
            array[1] = 2;
            array[2] = 3;
            array[3] = 4;
            array[4] = 5;//5칸이상 불가능
            //Console.WriteLine(array[5]);//IndexOutOfRangeException

            char[] oldString = new char[5];
            string curString = "";//문자열길이 제한없음

            ArrayList list = new ArrayList();
            list.Add(1);
            list.Add(2);
            list.Add(3);
            list.Add(4);
            list.Add(5);
            list.Add(6);
            // list는 제한 없음
            foreach(var item in list)
            {
                Console.WriteLine(item);
            }

            //list에서 데이터 삭제
            list.Remove(5);
            list.RemoveAt(1);//1번째 -> 사용자가 보는 두번째 값
            Console.WriteLine("==데이터 삭제==");
            foreach (var item in list)
            {
                Console.WriteLine(item);
            }

            //MyList
            MyList myList = new MyList();
            for(int i=1; i<=5; i++)
            {
                myList[i-1] = i * 5;//5,10,15,20,25
            }
            for(int i=0; i<myList.Length; i++)
            {
                Console.WriteLine(myList[i]);
            }
        }
    }
}

C# WPF

파일 탐색기 만들었지만 수업 자체가 강사,학생 모두 소스코드 보고 그대로 따라치는 수준이라 어떤 내용을 다루는지 로직이 어떻게 돌아가는지 자체도 이해하기 어려운 수준

따라서 따로 소스코드는 올리지 않고 깃허브 주소만 첨부

https://github.com/OHYUNBEOM/C_Sharp/tree/main/Day05/Day05WinApp

  • 앞으로도 수업이 이런식이면 WPF 부분은 다른 자료 찾아서 혼자서 하는게 나아보여서 그렇게 할 예정

0개의 댓글