Comment )
저번주에 프로젝트를 진행하느라, 블로그 정리를 할 여력이 없었습니다.
프로젝트 종료 기점인 25일 부터 다시 정리를 진행 중에 있습니다.
아무쪼록 성실한 하루가 되도록...
default 매개변수
함수의 매개변수가 초기값을 가지고 있으면 표출할 때 생략하는 것을 허용한다.
static void AddStudent(string name, string home, int age = 10)
{
}
params
매개변수의 개수가 정해지지 않은 경우, 무궁무진하게 사용할 수 있다.
동적으로 크기가 변하는 매개변수를 전달할 때(ex. 배열 형태로 전달할 때)
static int Sum(params int[] values)
{
int sum = 0;
foreach (int value in values)
{
sum += value;
}
return sum;
}
in
매개변수를 입력전용으로 설정한다.
in으로 설정된 매개변수는 해당 값을 읽는 것만 가능하고 수정이 불가능하다.
out
매개변수를 출력전용으로 설정한다.
리턴값 이외에 추가적인 출력이 필요한 경우.
함수의 리턴값 이오에 추가적인 리턴이 필요할 경우 사용한다.
static void Divide(in int left, in int right, out int quoient, out int remainder)
{
quoient = left / right;
remainder = left % right;
}
ref
매개변수를 참조의 형태로 불러올 수 있다.
기존에 ValueType은 메소드의 동작이 끝났을 때 해당 메소드와 같이 사라졌지만,
매개변수의 변수형 앞에 ref를 붙이게 되면 참조형식이 돼서 해당 메소드가 끝나게 되더라도 값이 유지가 된다.
static void Swap(ref int left, ref int right)
{
int temp = left;
left = right;
right = temp;
}
String 클래스
string은 문자들의 집합으로 표현된다.
내부적으로 문자 배열을 통해서 구현이 된다.
불변성(Immutable)
- string은 특징 상, 다른 기본자료형과 다르게 크기가 정해져 있지 않음.
- char의 집합이기에 char의 개수에 따라 크기가 유동적이다.
- 런타임에 크기가 결정되고, 크기가 일정치 않다는 점이 있다.(유동적이다 = 메모리의 heap 공간에 저장이 된다.)
- string 은 다른 기본자료형과 다르게 구조체가 아닌 클래스로 구현 되어있다.
- 단, 기본자료형과 같이 값 형식을 구현하기 위해, string클래스에 처리를 값 형식처럼 동작하도록 구현.
이를 구현하기 위해 string 간의 대입은 참조에 의한 복사(얕은복사) 가 아닌 깊은 복사를 진행한다.
- 데이터자체를 복사하는 값형식으로 복사하지만 힙영역을 사용 사용하기 때문에 설정이 되면 변경할 수 없도록하는 불변성을 가지게 된다.
String class
indexOf() | 현재 문자열 내에서 찾고자 하는 지정된 문자 또는 문자열의 위치를 찾는다 |
LastIndexOf() | indexOf와 같지만 뒤에서부터 찾는다. |
StartsWith() | 현재 문자열이 지정된 문자열로 시작하는지 검사한다. |
EndsWith() | 현재 문자열이 지정된 문자열로 끝나는지 검사한다. |
Contains() | 현재 문자열이 지정된 문자열을 포함하는지 검사한다. |
Replace() | 현재 문자열에서 지정된 문자열이 다른 지정된 문자열로 모두 바뀐 새로운 문자열을 반환함. |
Equals() | 문자가 같은지 검사한다. |
Trim() | 선행과 후행의 모든 공백 제거(중간 공백 제외) |
SubString() | 지정된 인덱스부터 지정된 길이만큼 문자를 뽑아냄. |
Split() | 해당 문자를 기준으로 문자열을 분할한다. |
Array 클래스
Array 클래스를 통해 구현되어 있다.
Array Class
Sort() | 해당 배열을 순차적으로 정렬한다. |
Reverse() | 해당 배열의 Index를 반전한다. |
IndexOf() | 해당 Index에 있는 내용을 탐색한다. |
Copy() | 해당 배열의 값을 복사한다. |
Clear() | 지정 배열을 초기화한다. |
':: 프로그래밍 :: > 수업 내용' 카테고리의 다른 글
2024.03.11 예외처리, 이벤트, 델리게이트, 델리게이트 체인 (0) | 2024.04.08 |
---|---|
2024.03.08 제네릭 메소드, 제네릭 클래스, 형식매개 변수 제약(제네릭) (0) | 2024.03.26 |
2024.03.06 C#) 구조체/클래스 차이, OOP, 객체지향 설계 5대원칙, 다형성, 추상화, 인터페이스 (3) | 2024.03.14 |
2024.03.05 C#) summary, 얕은복사/깊은복사, 정적변수선언, 정보은닉, 프로퍼티, 상속 (0) | 2024.03.12 |
2024.03.04 C#) 생성자 (0) | 2024.03.08 |