본문 바로가기

반응형

C#

(60)
C# 기초 문법 -오버라이딩 /오버로딩/ 추상클래스,메서드/인터페이스-다중상속/ 오버라이딩 - > 상속에만 쓸 수 있다. 자체 클래스에는 완전한 동일한 메소드가 두개 존재 할 수 없다. class A { int i; } class B : A { int i; } B 클래스에 i 변수를 선언 하는 것은 이유가 있어야 한다. 그렇지 않으면 쓸모 없는 메모리 낭비이다. 부모에게 있는 메소드를 인자를 추가 해서 미묘하게 다르게 해서 사용하는 것을 오버로딩 -> 상속일때도 쓰고 베이스 클래스에서도 쓴다. Car() Car(int a) -> 자신 Test() -> 부모 Test(int a) -> 자식 B obj = new B(); obj.i -> B에 접근 ! 이거는 오버라이딩 오리지날 메소드가 존재한다. 부모 클래스를 통하면 자식 클래스를 통하지 않고 모든 걸 다 관리 할 수 있는데 단점은 무..
C# - 소수인지 아닌지 판별하는 알고리즘! using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; //[?] 특정수를 입력받아서, 소수인지 아닌지 판별하는 프로그램 // - 5는 소수 : 1과 5만을 약수로 가짐 // - 6은 소수가 아님 : 1과 6만이 아닌 추가로 2와 3을 약수로 가짐 // - 2부터 해당 수 까지 나머지 값을 구해서 나머지 값이 0일때 나눈 수가 해당 수라면 그 때는 소수다 namespace _20200718_소수구하기 {/// /// 소수(Prime Number) : 자연수 중에서 1과 자신만을 약수로 가지는 자연수 /// class PrimeNumber { static ..
C# Winform 개발(자동 전산 파일 삭제 프로그램 ) 1. 매일 생성되는 엑셀 파일을 주기적으로 삭제할 수 있는 프로그램이 필요하다. 2. 삭제는 작업이 이루어 지지 않는 새벽 시간에 삭제가 되어야한다.(윈도우 스케줄러 사용) 3. 사용자가 UI를 확인했을 때 삭제된 사실을 확인 할 수 있어야 한다. 4. 현재 날짜 기준으로 하루 전 원하는 루트 안에 생성된 파일를 삭제한다. 5. 작업자 및 현장 인원이 임의로 프로그램을 작동하는 일이 없어야 한다. UI는 직관적일 수 있도록 최대한 간단하게 만들었다. 타이머 Tick 이벤트를 사용하였다. 우선 지울 파일의 루트를 선언하였고 DateTime 을 사용하여 현재 날짜를 담을 변수를 선언하였다. 해당 변수를 담을 deleteOldfiles(deleteOldfiles(excelFolderPath, nowTime);..
C# 문법- INDEXER (FEAT PROPERTY) using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleApp15 { class TESTINT { private int[] array = new int[6]; public int this[int index] { get { return array[index]; } set { array[index] = value; } } } class TEST { private string[] _array = new string[5]; public string this[int index] { get { return _array[index]; }..
C# - 데스크탑 WinForm/GITHUB 사용법 깃 서버에서 나의 컴퓨터로 정보를 가져오는 것을 클론(CLONE)이라고 한다. 깃에서 가져온 클론을 내 컴퓨터에서 허용 해주는 것을 커밋!(COMMIT)! 깃 서버와 나의 컴퓨터가 같이 움직일 수 있도록 하는 것이 푸시 (PUSH) -변경되는 것을 깃 서버에 업로드하는 것 다른 사람이 작업을 해서 깃서버에 올리고 그것이 나의 컴퓨터와 동기화 되는 것을 풀(PULL) 제네릭이란? 변수의 형을 매개변수로 하여 클래스나 메소드의 알고리즘을 자료형과 무관하게 기술하는 기법 형 매개변수(type parameter) 클래스 내의 필드나 메소드 선언시 자료형으로 사용 '' 사이에 형 매개변수의 이름을 기술 : alt +enter 생성자 생성 자동으로 매개변수로 생성가능 fore +tab +tab 하면 자동으로 형식이..
C# - 프로퍼티 문법/상속 복습(0603) 프로퍼티 접근자/설정자 메서드를 둬서 필드 접근에 대한 단일 창구를 제공하는 것은 바람직하지만 호출을 위한 메서드 정의를 일일이 코드로 작성하자면 분명 번거로울 것이다. 이같은 단점을 보완하기 위해 c#에서는 특별히 프로퍼티라는 문법을제공한다. *아쉽게ㅔ도 프로퍼티도 속성으로 번역되는데 이경우 객체지향에서 말하는 속성과 혼동될 수 있다 ,즉 객체지향에서 말하는 속성은 c# 에서는 필드에 해당하고 속성은 접근자 설정자 메서드에 대한 편리한 구문에 해당한다. 경우에 따라 c# 의 프로퍼티는 보통 public으로 되는 경우가 많아 공용 속성이라고 구분해서 부르기도 한다. 프로퍼티 정의는 필드를 접근자/설정자 메서드로 정의하던 것과 비교하면 확실히 간단하다. namespace _20200603_복습에대한_의지가..
C#- Main메서드 프로그램은 CPU에 의해 순차적으로 생행되는 특징을 지난다 C #으로 만든 프로그램도 역시 순서되로 명령어가 실행되는데 그렇다면 가장 처음 실행되는 명령어라 뭘까? 다른 말로 진입점 entry point 이라고도 하는데 c#은 다음과 같은 약속을 따르는 메서드를 최초로 실행될 메서드라고 규정한다. 1. 메서드 이름은 반드시 main이고 2.정적 메서드여야 하고 3.main메스드가 정의 된 클래스의 이름은 제한이 없다 하지만 2개 이사의 클래스에서 main메서드를 정의하고 있다면 c#컴파일러에게 클래스를 지정해야함 4.main메서드의 반환값은 void 또는 int만 허용됨 5. main메서드의 매개변수는 없거나 string배열만 허용됨 클래스 안에 행위가 있고 속성 행위는 메소드로 나타내고 속성은 변수로 ..
C# -STACK, HEAP/ARRAY.CLEAR/ Stack vs Heap Stack은 메소드가 실행될 때 변수가 push(입력)되며 실행이 종료될 때 pop(해제)된다. heap은 new혹은 c에서는 malloc 될 때 만들어지며 자바는 가비지 컬렉션에 의해 사용되지 않을 때 자동으로 해제되고, c에서는 직접 관리해서 해제 해줘야 한다. 스택 스택이란 무엇입니까? 이것은 각 기능 (기능 포함)에 의해 생성 된 임시 변수를 저장하는 컴퓨터 메모리의 특별한 영역입니다 main(). 스택은 "LIFO"(last in, first out) 데이터 구조로 CPU에 의해 관리되고 최적화됩니다. 함수가 새 변수를 선언 할 때마다 스택에 "푸시 (push)"됩니다. 그런 다음 함수가 종료 될 때마다 해당 함수에 의해 스택에 푸시 된 모든 변수가 해제됩니다 (즉, 삭..

반응형