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 부분은 다른 자료 찾아서 혼자서 하는게 나아보여서 그렇게 할 예정