목록C# (38)
아디봉의.net
http://appletree.or.kr/quick_reference_cards/
c#에서는 서로 성질이 다른 데이터 타입인 값타입과 참조타입을 두고 있다. 그리고 값타입과 참조타입이 서로 공존하기때문에 문제가 발생한다. 예를 들어 함수의 매개변수를 Object 형으로 했다면 참조타입으로 지정한것이다. Object 형은 모든 클래스의 최상위의 형이기 때문에 업캐스팅의 원리에 의해서 모든 객체는 Object형으로 형변환될 수 있다. public class Top{ public static void say(Object obj){ //... } } Top.Say(new Object()); Top.Say("Hello"); Top.Say(3); Boxing : 값타입을 참조타입으로 변환하는 기법 UnBoxing : 참조타입을 값타입으로 변환하는 기법 Boxing Boxing 을 하는 기본적인 ..
url : http://synch3d.com/wiki/moin/moin.cgi/C_23_20and_20the_20_2eNET_20Platform_202nd
다형성(Polymorphism) - 하나로 여러가지 일을 하는것 다형성 적용되는 곳 - 업캐스팅(Upcasting) - 오버라이딩(Overriding) - 가상함수(Virtual Function) - 상속(Inheritance) - 추상클래스 - 인터페이스 다형성을 지원하기 위한 도구들 - 박싱, 언박싱, 추상클래스, 인터페이스, 델리게이트, 업캐스팅과 다운캐스팅, 가상함수 1) 추상함수 (Abstract Method) 추상함수는 구현이 이루어지지 않고 단지 그 프로토타입(Prototype)만을 가지고 있는 함수를 말함 추상함수의 특징1 - 추상함수는 abstract 키워드를 붙여서 추상함수라는 것을 명시해야한다. - 추상함수를 하나라도 포함하고 있으면 클래스명 앞에 abstract 키워드를 붙여서 추상..
this() - 자신의 생성자를 호출할 때도 사용 - 자신의 생성자를 재사용하기 위해서 생성자를 호출하는 방법을 제공 public class ThisSelf{ pricate string name; private int age; public ThisSelf() : this("이름없음"){ Console.WriteLine("매개변수가 없는 생성자"); } public ThisSelf(string name) : this(name, -1){ Console.WriteLine("매개변수가 1개있는 생성자"); } public ThisSelf(string name, int age) : { Console.WriteLine("name : " + name , "age : " + age); Console.WriteLine(..
생성자는 객체의 메모리가 생성된 직후에 호출되는 함수를 말한다. 객체를 생성할 때 생성자를 호출하지 않는 경우는 없다. 그렇기 떄문에 모든 클래스는 반드시 하나이상의 생성자를 두어야 한다. 디폴트 생성자 Default Constructor 우리가 생성자를 만들지 않은경우도 있다. 이럴경우를 대비해서 컴파일러는 컴파일할때 생성자가 있는지 검사하게되고, 생성자가 없을 경우에만 매개변수가 없으면 구현부가 비어있는 생성자를 자동으로 만들어준다. using System; public class MainTest{ public void SayHello(){ Console.WriteLine("Hello World!"); } public static void Main(){ MainTest m = new MainTest(..
아키텍처 architecture 컴퓨터구조 소프트웨어 구조, 어떤 프로젝트를 진행할 경우 프로젝트의 최종 결과물이 가져야 하는 모양으로 하드웨어 구성과 소프트웨어 구성, input값, output값, UI등의 설계를 말한다. 프로그래머나 사용자가 본 컴퓨터 시스템의 소프트웨어와 하드웨어 전체의 기능적인 "제작"을 말한다. 프레임워크 framework 소프트웨어 개발환경, 개발언어, 컴파일러, 사용 라이브러리, 디버거및 소스관리솔루션들의 셋트 프로그램을 쉽게 개발하도록 논리적으로 묶어 놓은 클래스, 메서드, 함수, 문서의 모음이다. 플렛폼 flatfrom 컴퓨터시스템의 기반이 되는 하드웨어 또는 소프트웨어, 응용 프로그램이 실행될 수 있는 기초를 이루는 컴퓨터 시스템을 의미한다.
상속(Inheritance) - 상속이란 만들어준 클래스를 다시 사용 할 수 있는 방법을 말한다. 상속의 쓰임 1) Top형의 클래스가 있으며, 새로 클래스를 만들어야 하는 Top 형에서 조금만 수정하면 되는 경우 2) Top형 클래스의 소스코드는 잃어 버렸으며 DLL만 있는 경우 두경우의 해결책 - 상속을 이용하면 한번에 해결가능 dll생성 namespace org.test{ pulbic class Top{ pulbic void SayHello(){ System.Console.WriteLine(안녕이라고 말하지마!!); } } } ------------------------------------------------------------ using org.test; //dll 사용하게 public cl..
오버로딩(overloading)이란? 함수의이름은 하나만 주고 매개변수를 다르게 함으로써 함수를 여러개 만드는 것을 말함, 보통 다중정의, 중복함수라고 부르며 일반적으로 오버로딩이라고 한다. 생성규칙 - 반드시 매개변수의 개수와 매개변수의 형이 달라야 한다. ex) public int plus(int a, int b){,,,} public float plus(float a, float b){,,,} public double plus(double a, double b){,,,} 매개변수의 형과 개수는 컴파일러가 함수의 이름을 다르게 부여하기 위한 함수의 구분자가 되는 것이다. 오버로딩(overloading)을 사용하는 이유 - 해당 클래스의 함수를 사용할 떄 사용자의 편리를 위해서 - 함수의 이름 하나로 ..
unsafe 코드 c#에서 포인터(*)를 기본으로 사용하지 않는다. c#에서는 CLR이 메모리를 알아서 관리해주기 때문에 사용자가 직접 메모리를 건드리는것은 안전하지 않다. 이러한 불안전한 구조에서 포인터를 사용한코드를 "unsafe"코드라고 한다. unsafe 코드 처리하는 예 using system; class UnsafeTest2{ //unsafe함수 unsafe static void CallByPoint(int* x){ *x = 10000; } public static void Main(){ int x1 = 10; unsafe{ //unsafe블록 CallByPoint(&x1); } Console.WriteLine("Call-By-Point: {0}", x1); } } 스택과 힙과 포인터 힙 메모..