목록전체 글 (253)
bdfgdfg
객체지향 프로그래밍에서는 다형성을 지원한다. 예로들어 밑과 같은 코드가 있다고 할 때 1 2 3 4 5 6 7 8 9 10 11 12 13 14 class Mammal { } class Dog : Mammal { } class Cat : Mammal { } class .... : Mammal // 그 외 다수의 포유물 동물들 Colored by Color Scripter cs 만약 포유물들을 관리하는 어떤 객체가 있고, 해당 객체에 접근하기 위해서 모든 Mammal에서 파생된 객체의 타입에 따라 오버로딩된 함수를 작성하는건 힘들다. 1 2 3 4 5 6 7 8 9 class ZooKeeper { public void Wash(Dog dog) { } public void Wash(Cat dog) { } p..
C#에서는 포인터가 존재하지 않는다. 또한 C++처럼 참조자(&)키워드가 없기에 다른 방식으로 원본을 넘겨줘야 한다. 그것이 ref 키워드. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 class Program { static void Test(int a, ref int b) { a = 100; b = 200; } static void Main(string[] args) { int a = 10, b = 20; Console.WriteLine("a : {0} b : {1}",a,b); Test(a, ref b); // 넘길 때 ref키워드를 붙여줘야 한다. Console.WriteLine("a : {0} b : {1}", a, b); } } Colored by Color Sc..
C#에서는 편리한 기능들을 많이 제공한다. 우선 문자열(string 클래스)에서 찾기(Find)기능을 하는 메소드를 본다. 문자열 찾기 먼저 IndexOf 메소드. -> 현재 문자열 내에서 찾고자 하는 문자 또는 문자열의 위치를 찾는다. -> 문자열의 경우 해당 문자열의 첫번째 문자의 위치를 기준으로 위치를 반환한다. ex) Hello World! -> IndexOf("World!") -> 6번째 위치 (0번부터 시작) 1 2 3 4 5 6 7 8 9 10 11 class Program { static void Main(string[] args) { string test = "Hello World!"; //IndexOf Console.WriteLine("IndexOf '!' : {0}",test.Inde..
C#에는 '값' 형식과 '참조' 형식 두가지가 존재한다. 값 형식과 참조 형식 값 형식은 벼누가 값을 담는 데이터 형식을 말하고, 참조 형식은 변수가 값 대신 해당 값이 있는 곳의 위치(참조)를 담는 데이터 형식. 값 형식의 데이터는 스택 메모리 영역에 올라가며 참조 형식의 데이터는 힙 메모리 영역에 올라간다. -> 참조 변수(스택 영역에 존재)가 힙 메모리 영역에 있는 해당 값을 가리키는 것. 기본적으로 힙 메모리 영역에 올라가는 데이터는 사용자가 직접 동적할당 하는 메모리 영역이다. -> C++에서는 사용자가 동적할당했으면 직접 메모리를 해제 해야한다. (혹은 RAII패턴이 적용된 스마트 포인터를 이용) -> 즉 힙 메모리 영역에 올라간 데이터는 기본적으로 자기 스스로 제거하는 매커니즘은 아닌 것. ..