[c#] 델리게이트(delegate) 개념 | += , -= 정수값을 변수에 담고 싶을때는 정수를 담고싶을때는 int로 선언하면됩니다. 문자를 담고싶을때는 string로 선언하면됩니다. 함수(or 메소드)를 변수에 담고 싶을땐 어떻게 할까요? 이때 사용하는것이 대리자(delegate)입니다. 이 글과 읽으면 좋은글 [c#] 델리게이트를 왜 쓸까? 1. 델리게이트 선언방법 1) 제일 앞에 delegate 명시하고, 리턴값 타입, 매개변수 구성을 맞춰서 정의를 합니다. 아래 그림 처럼 변수에 넣고 싶은 메소드인 Print의 구성요소를 맞춰서 delegate를 정의하는것을 알 수 있습니다. 2) 메소드를 가진 클래스를 먼저 객체화 하고, 메소드를 델리게이트의 인자로 넣는 형태로 정의를 합니다. 델리게이트가 마치 변수처럼 사용되는걸 알 수 있습니다. Output: 이 방.. c# 2022. 5. 10. [c# 기초] 코드 동작 시간 측정 (with Stopwatch) 이번 포스팅에서는 코드 실행 시간을 측정하는 방법에 대해 알아 보도록 하겠습니다. 1. Stopwatch 클래스 불러오기 Stopwatch regularStopwatch = new Stopwatch(); Stopwatch클래스를 불러와 regularStopwatch라는 명으로 객체를 형성합니다.(객체 명은 원하는대로 작성하셔도 됩니다.^^) 혹시 아래와 같이 빨간줄이 뜨신다면, 빨간줄 부분을 클릭 후 Ctrl + . 을 누르시고 엔터를 치시면 using System.Diagnostics; 가 윗부분에 작성 됩니다. 해당 클래스가 Diagnostics에 포함된 클래스이기 때문에 정상적으로 실행 되실겁니다. 2. Start(), Stop() 메소드 이용 파란색 사각형 부분이 측정하고 싶은 코드이고, 이 코드.. c# 2022. 5. 9. [c# 기초] StringBuilder 사용 이유? 이번 포스팅에서는 StringBuilder를 써야 하는 이유와 사용법에 대해 알아보도록 하겠습니다. 1. StringBuilder를 써야 하는 이유 기본 string형태는 immutable 형태로 변경할 수 없는 데이터타입 입니다. 이 말은 무엇을 의미할까요? 이는 데이터값이 바뀔때마다 새로운 메모리에 해당 값이 저장되고, 낙동강 오리알이 되어버린 이전값들이 garbage로 쌓이게 된다는걸 의미합니다. 결과적으로 속도가 느려집니다. 반면 StringBuilder은 변경할 수 있는 데이터타입으로 해당 문제를 해결 해줍니다. 2. string vs Stringbuilder 속도 비교 코드 코드 속도 측정 클래스(Stopwatch)를 모르시는 분은 해당 포스팅을 참조바랍니다. 정말로 그런지 아래 코드를 통해 .. c# 2022. 5. 9. [c# 기초] partial을 쓰는 이유? c# 코딩을 하다보면 parital이라고 적힌 것을 보신적이 있을겁니다. 이 친구의 정체는 무엇이고, 언제 사용할까요? 결론부터 말하자면, 한 클래스내에 메소드들이 너무 많아져서 유지 관리가 힘들때, 관련있는 메소드들끼리 분리하고 나누기 위함입니다. 아래 예시처럼 Person 이라는 클래스내에 많은 메소드(함수)들이 있습니다. 실제 실무에서는 이러한 메소드들이 100개 이상이 되는 경우도 있는데요. 이때 메소드를 수정하려는데 메소드가 어디있는지 찾기 힘든 경우가 더러 있습니다. 이럴땐 관련있는 메소드들을 분리하여 관리하면 편하겠죠? partial 사용법은 같은 클래스명을 사용하되 앞에 partial을 붙혀주면 끝입니다. 실무에서는 아래처럼 관련있는 메소드별로 클래스를 분류하여 관리합니다. 마치 다른 클래.. c# 2022. 5. 6. [c# 기초] c# 접근 제한자(Access modifier) / private, protected, public c# 코딩을 하다보면 클래스, 함수, 변수 제일 앞에 붙어 있는것을 보신적이 있으실겁니다. 이러한 것들은 접근 제한자(Access modifier)라고 불리는데요. 접근제한자는 해당 변수 ,함수, 클래스에 개방성(?)정도를 조절하는 역할을 합니다. 쉽게 말해 모두가 쓸수 있게 해준다거나, 아무도 못쓰게하는 등 제한 정도를 거는거죠. 자주 쓰이는것으로 아래 3가지 있으며, 이번 포스팅에서는 아래 3가지에 대해서만 알아 보도록 하겠습니다. 1. private 2. protected 3. public 1. public public을 쓰는 순간 사실상 신경 쓸 필요가 없습니다. 왜냐하면 모든 곳에 사용 가능하고, 심지어 다른 파일에 있는 클래스도 가져와서 쓸 수 있습니다. (다른 파일에 클래스를 사용한 예는 해.. c# 2022. 5. 6. [c# 기초] this 키워드 , this() 생성자 개념 이번 포스팅에서는 this키워드, this() 생성자에 대해 알아보겠습니다. 1. this 키워드 클래스 외부에서 클래스 내부에 있는 멤버변수에 접근하려면 아래와 같이 객체명.멤버면수명으로 접근을 합니다. 그렇다면 클래스내 메소드(함수)에서 클래스 멤버변수값을 사용하려면 어떻게 할까요? 이때 사용하는 것이 this입니다. this를 생성자 함수에서 이용하는 예시를 보여드리겠습니다.(생성자 함수를 모르시는분은 해당 포스팅 참조) Person p1 = new Person("david"); class Person { public string name; public Person(string name) { this.name = name; Console.WriteLine($"제이름은 {this.name}입니다.").. c# 2022. 5. 4. [c# 기초] 다른 프로젝트에 있는 클래스 함수 사용하는법 완벽 정리 두개의 프로젝트가 준비되어있습니다. ConsoleApp6 프로젝트에는 아래와 같은 클래스와 멤버 변수가 적혀있는데요. 우리가 원하는것은 이 함수를 ConsoleApp7 프로젝트에서 실행하고 싶습니다. 1. 실행할 프로젝트 기준으로 불러올 프로젝트 참조 추가 여기서 우리가 실행할 프로젝트는 ConsoleApp7 이고, 불러올 클래스가 있는 프로젝트는 ConsoleApp6입니다. 종속성에 마우스 오른쪽 클릭 후 프로젝트 참조 추가를 클릭합니다. 그 후 아래 그림처럼 클릭해주시고 확인을 눌러줍니다. 2. ConsoleApp7 프로젝트에서 ConsoleApp6에 있는 클래스 함수 실행 참고로 다른 프로젝트의 클래스를 실행하기 위해선 빨간색 사각형 부분의 접근제한자가 public이어야 한다는것을 참고바랍니다. /.. c# 2022. 5. 4. [c# 기초] 작업중인 파일이 자동적으로 실행되게 하는 방법(Ctrl+ F5) c# 코딩을 하다보면, Ctrl+F5 를 통해 파일을 실행시킬때 매번 아래와 같이 실행시키고 싶은 프로젝트에 들어가 시작 프로젝트로 설정을 해줘야 했습니다. 이번 포스팅에서는 이렇게 매번 변경할 필요 없이, 현재 클릭한 프로젝트가 자동적으로 실행되도록 하는 방법을 알아보겠습니다. 1. 솔루션 마우스 오른쪽 클릭 후 제일 밑에 있는 속성을 클릭합니다. 2. 현재 선택 영역(R) 클릭 이렇게 설정을 하면 매번 시작프로젝트를 변경할 필요가 없이, 작업중인 프로젝트가 실행이 되게 됩니다. c# 2022. 5. 4. [c# 기초] 생성자(constructor)란? 이번 포스팅에서는 생성자가 무엇이고, 어떻게 사용하는지에 대해 알아보도록 하겠습니다. 1. 생성자(constructor)의 생김새 빨간색 사각형부분이 생성자 함수 부분입니다. 이 생성자 함수는 몇가지 특징을 가지고 있는데요. 1) 클래스명과 같은 이름으로 지정(여기선 School) 합니다. 2) public으로 정의 되어야 합니다. 3) return형식의 반환 형식을 사용할수 없습니다. 하지만 void를 붙히지 않은 형태로 적어줘야합니다. (void를 모르시는 분은 해당 포스팅 참조) 4) 아래와 같이 매개변수 전달이 가능합니다. 2. 생성자(constructor)의 작동방식 생성자 함수란 클래스가 객체로 정의될때 자동으로 실행되는 함수입니다. School school = new School(); cla.. c# 2022. 5. 3. [c# 기초] ref vs out 차이 이번 포스팅에서는 비슷한듯 다르게 보이는 ref와 out차이를 알아보도록 하겠습니다. 그 전에 이를 제대로 이해하기 위해선 ref를 이용한 함수와 이용하지 않은 보통 함수에 대한 이해가 선행 되어야 합니다. 1. ref 이용한 함수 vs 보통 함수 1) 보통 함수 int num=5; static void ChangeNum(int a) { a = 10; } ChangeNum(num); Console.WriteLine(num); //output: 5 최초 정의한 num =5 값이 ChangeNum함수를 통과 했음에도 불구하고 최종 num값의 변화가 없습니다. 왜냐하면 함수 바깥 scope와 함수내 scope가 엄연히 다른 공간으로 인식 하기 때문입니다. 2) ref 이용한 함수 기존 함수와 사용법에 차이가 .. c# 2022. 5. 3. [c# 기초] 함수 앞에 붙은 void는 무엇인가? c#을 처음 공부하면서 함수앞에 void라고 붙은것을 자주 보게 됩니다. 이 친구는 무엇일까요? 바로 이해하기 위해선 void가 있는 함수와 없는 함수의 차이를 보면 됩니다. 아래 두 함수를 보십시오. 하나는 함수명 앞에 void, 하나는 string이라고 붙어 있죠. 둘의 차이점이 느껴지시나요? 바로 return 이있냐 없냐 그 차이 입니다. c#에서는 함수명을 지을때 해당 함수가 리턴하는 값의 데이터타입을 함수명앞에 명시해야 합니다. 문제는 리턴하는값이 없을 경우 입니다. 이러한 문제를 해결하기 위해 void라는 명칭으로 함수 앞에 적어주게 되고, 이는 해당 함수는 리턴 값이 없다는걸 내포하게 됩니다. c# 2022. 5. 2. microsoft sql server management 18 설치 오류 Microsoft SQL Server 설치를 하는데 아래 화면처럼 패키징 로딩중이라면서 계속 기다리라는 창에서 넘어가지 않으신가요? 해결방법은 아래와 같습니다. 1. cmd(명령 프롬프트 창) 관리자 권한으로 실행 2. 아래 명령어를 그대로 복사후 cmd창에 기입 reg DELETE “HKLM\SOFTWARE\WOW6432Node\Microsoft\Microsoft SQL Server Management Studio” /reg:32 3. 정말 삭제를 할것인지 묻는데 yes 라고 기입. 만약 관리자 권한으로 실행 하지않을시 권한이 없다고 뜰수 있으니 반드시 관리자 권한으로 실행합니다. 카테고리 없음 2022. 5. 2. 이전 1 ··· 21 22 23 24 25 26 27 ··· 32 다음