본문 바로가기

반응형

PROGRAMING

일반화 메소드 일반화 메소드 일반화 메소드 ( Generic Method )는 이름처럼 (데이터 형식을) 일반화한 메소드입니다 일반화 메소드가 어떤 장점이 있는지 알아보겠습니다. 사용방법은 일반화 메소드와 일반 메소드는 비슷하게 사용을 합니다. 한정자 반환형식 메소드이름 ( 매개 변수 목록 ) {//} 위와 같이 사용을 하게 됩니다. 문법적으로는 크게 어려운것이 없습니다. namespace ConsoleApp9{ class Program { static void Main(string[] args) { int[] _Member = { 1, 2, 3, 4, 5, 6 }; int[] _Copy = new int[_Member.Length]; CopyArry(_Member, _Copy); foreach (int i in _C.. 더보기
확장 메소드 확장 메소드 오늘은 확장 메소드에 대하여 소개를 하려고 합니다. 사전적 의미는 확장메소드(Extension Method )는 기존 클래스를 확장하는 방법입니다. 여기에서 필드나, 메소드를 추가하는 상속이랑은 다른 경우 입니다. 확장 메소드는 "기존 클래스를 확장"을 한다. 가 되겠습니다. 특징 1. 반드시 static으로 선언을 하여야 한다. 2. 첫번째 매개변수는 반드시 this로 시작해야 된다. 3. 확장하고자 하는 클래스의 형식이어야 합니다. [문법]namespace 네임스페이스이름 {public static class 클래스 이름 {public static 반환형식 메소드 이름 ( this 대상형식 식별자, 매개 변수 ) {}}} [예제1]using MyExtension; namespace thi.. 더보기
Ref, Out에 의한 참조(Reference) Ref, Out에 의한 참조(Reference) 함수의 인수 전달의 또 다른 방법으로 매개변수를 참조로 넘길수도 있다. 우선 결론부터 말하면 참조형 매개 변수(Reference Parameter)는 "메모리 위치에 대한 참조"다 Ref에 의한 참조 namespace Reference{ class Program { static void Main(string[] args) { int X1 = 10; CallbyRef(ref X1); Console.WriteLine("Call By Reference : {0}", X1); } static void CallbyRef(ref int X) { X = 1000; } } } 결과 : 1000 함수에 ref라는 키워드가 붙는다 이렇게 사용을 하게 되면 Ref에 의한 참조.. 더보기
값 타입 값타입 값 타입 : 스택에 할달되며 변수가 값 자체를 직접 가진다. 정수, 문자, 실수 들의 내장타입과 열거형, 구조체등이 값 타입이며 주로 크기가 작고 길이가 고정적인 값을 저장한다. 선언하는 즉시 기억장소가 할당되므로 별도 초기화가 필요 없다, System.Byte :( 크기 1), 부호 없음 System.sByte :( 크기 1), 부호 있음 System.Int16 :( 크기 2), 부호 있음 System.Uint16 : (크기2), 부호 없음 System.Int32 : (크기4), 부호 있음 System.UInt32 :(크기4), 부호 없음 System.Int64 : (크기8), 부호 있음 System.UInt64:(크기8), 부호 없음 System.Char :(크기 2), 부호 있음 System.. 더보기
삭제 패턴 https://docs.microsoft.com/ko-kr/dotnet/standard/design-guidelines/dispose-pattern 모든 프로그램 실행을 사용 하는 동안 메모리, 시스템 핸들 또는 데이터베이스 연결과 같은 하나 이상의 시스템 리소스를 획득합니다. 개발자가 직접 획득 고 사용한 후 해제 되어야 합니다 때문에 이러한 시스템 리소스를 사용할 때는 주의 해야 해야 합니다.CLR 자동 메모리 관리에 대 한 지원을 제공합니다. 관리 되는 메모리 (C# 연산자를 사용 하 여 할당 된 메모리 new) 명시적으로 해제 될 필요가 없습니다. 가비지 수집기 (GC)에 의해 자동으로 해제 됩니다. 이 개발자의 메모리를 확보 걸리고 어려운 작업에서 해제 하 고 되었으면.NET Framework에.. 더보기
인터페이스 (Interface) 인터페이스 인터페이스는 메서드의 목록만을 가지는 특별한 타입입니다. 기본형식은 클래스 선언문과 유사하지만, 키워드 "Interface"로 선언하며, 클래스와 쉽게 구분하지 위해 이름을 대문자 "I"로 시작하는것이 관계입니다. 이름뒤에 : 과 인터페이스를 밝힘으로써 다른 인터페이스로 부터 상속도 받을수 있습니다. 지정자 interface 이름 : 기반 인터페이스 {메서드 } 인터페이스의 멤버는 구현 코드를 가지지 않으며 세미클로으로 끝난다. 본체가 없고 동작이 정의 되어 있지 않기 때문에 직접 호출을할수는 추상 메서드인 셈이다. 인터페이스도 추상 클래스 처럼 객체를 생성할수가 없다. 정의만 가지고 있고, 구현 코드를 가지고 있지 않다. 인터페이스로부터 상속 받은 클래스는 인터페이스에 포함된 모든 메서드를 .. 더보기
param 매개 변수 Param 매개 변수 params 키워드를 사용하면 가변 개수의 인수를 사용하는 메서드 매개 변수를 지정할 수 있습니다. 매개 변수 선언이나 지정된 형식의 인수 배열에 지정된 형식의 쉼표로 구분된 인수 목록을 보낼 수 있습니다. 인수를 보내지 않을 수도 있습니다. 인수를 보내지 않는 경우 params 목록의 길이는 0입니다. 메서드 선언에서 params 키워드 뒤에는 추가 매개 변수가 허용되지 않으며, params 키워드 하나만 메서드 선언에 사용할 수 있습니다. public class MyClass { public static void UseParams(params int[] list) { for (int i = 0; i < list.Length; i++) { Console.Write(list[i] +.. 더보기
C# 키워드 C# 키워드 키워드는 컴파일러에 대해 특별한 의미를 갖는, 미리 정의되어 있는 예약된 식별자입니다. 키워드는 프로그램에서 식별자로 사용되려면 접두어로 @을 포함해야 합니다. 예를 들어 @if는 올바른 식별자이지만 if는 if가 키워드이므로 식별자로 적절하지 않습니다. 이 항목의 첫 번째 표에는 C# 프로그램의 모든 부분에서 예약된 식별자로 사용되는 키워드가 나와 있습니다. 이 항목의 두 번째 표에는 C#의 상황별 키워드가 나와 있습니다. 상황별 키워드는 제한된 프로그램 컨텍스트에서만 특별한 의미를 가지며 해당 컨텍스트 외부에서는 식별자로 사용될 수 있습니다. 일반적으로 새 키워드는 C# 언어에 추가될 때 이전 버전에서 작성된 프로그램을 중단하지 않도록 하기 위해 상황별 키워드로 추가됩니다. 더보기

반응형