목록C#/C# 문법 (10)
A-Dyu의 개발 일기장
List클래스같이 클래스의 값에 접근할때 인덱스로 접근하고 싶을 떄가 있다.그럴 떄 인덱서를 사용하며 클래스를 프로퍼티 형식으로 인덱싱할 수 있다.public class MyClass{ private int[] intArray = { 1,2,3,4,5 }; public int this[int i] { get { return intArray[i]; } set { intArray[i] = value; } }}인덱서는 간단히 인자가 있는 속성(프로퍼티)라고 생각하면 된다.getter와 setter로 구분되며, 대괄호 안에 받아오는 매개변수로 구분된다. ..
C#의 System.Math을 상요할 때 가장 많이 쓰이는 게 반올림, 올림, 내림, 버림 기능인데, 어떻게 사용하는지 알아보겠다.1.올림Console.WriteLine(Math.Ceiling(1.4)); //2Console.WriteLine(Math.Ceiling(-1.5));//-12.내림Console.WriteLine(Math.Floor(1.4)); //1Console.WriteLine(Math.Floor(-1.5));//-23.버림Console.WriteLine(Math.Truncate(1.4)); //1Console.WriteLine(Math.Truncate(-1.5));//-1버림과 내림의 차이는 바로 음수에서 나오는데,내림은 말 그대로 음수면 1을 내리지만 버림은 소수점을 무시한다.4.반올림..
List에 요소를 추가, 수정, 삭제하는법1.추가List list = new List();list.Add(3); //list 맨 끝에 삽입list.Insert(0, 1);//list 시작 부분에 삽입list.Insert(1, 2);//list 중간에 삽입 2.수정가장 간단하다list[1] = 5;//두 번째 요소를 5로 바꿈3.삭제list.Remove(1); //특정 값을 제거(중복된다면 가장 첫번째를)list.RemoveAll(3); //특정 값을 모두 제거list.RemoveAt(0);//첫 번째 요소를 제거
var 키워드를 사용하면 지역 변수를 선언할 때 컴파일러가 초기화 식에서 변수의 형식을 유추하도록 할 수 있습니다. 사용법은 자료형 이름 대신 var 키워드를 사용하면 됩니다.//블럭 안쪽var name = "Hong gil Dong";//자동으로 string 타입으로 지정해준다 var 구문은 지역 변수에서만 사용할 수 있습니다.
프로그래밍을 할 때 각각 다른 변수가 하나의 주소값(레퍼런스값)을 가리키는지 비교해야 할 때가 있다.그럴 때 Object.ReferenceEquals 메서드를 쓰면 된다.(참고로 ReferenceEquals는 정적 메서드다)List list = new List();List list2 = list;Console.WriteLine(Object.ReferenceEquals(list, list2));//True
리스트를 복사할 때,단순히 =연산자를 사용하면 복사되는게 아닌 참조가 되어 얕은 복사가 된다.List list = new List();List copyTo = list;//list를 수정하면 같은 객체를 참조하기 때문에 같이 값이 바뀐다. 그럴 땐, ToList메서드를 사용하면 된다.List list = new List();List copyTo = list.ToList(); 만약 리스트가 아닌 배열로 바꾸고 싶다면, ToArray메서드를 사용하면 된다.List list = new List();string[] copyTo = list.ToArray();
C#을 사용할 때 문자열 양 끝쪽의 공맥을 제거하려면 Trim메서드를 사용하면 된다.string str = " test";//test 앞에 공백이 있음Console.WriteLine(str);//> teststring strTrim = str.Trim();//양쪽의 공백 삭제Console.WriteLine(strTrim);//>test
만약 특정 클래스의 상속을 금지하고 싶으면 sealed 키워드를 사용하면 된다.private sealed class Parent //sealed 키워드를 이용한 상속 금지{ //멤버 필드}sealed 키워드를 이용한 클래스를 상속받으려 하면 CS0509 예외가 발생한다.private sealed class Parent //sealed 키워드를 이용한 상속 금지{ //멤버 필드}private class Child : Parent//CS0509 :'Child': sealed 형식 'Parent'에서 파생될 수 없습니다{ //멤버 필드}