아디봉의.net
오버로딩(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); } } 스택과 힙과 포인터 힙 메모..
const 상수 c#에서 상수 선언하는 방법 1) const키워드 사용하는 방법 ex) public const int SALLERY = 7070; const로 선언한 상수는 내부에서 자동으로 static 가 된다. * 스태틱으로 선언된 필드나 함수는 스태틱이라고 하는 특수한 메모리 영역에 단 하나의 메모리가 생성되기 때문에 클래스 전체에 공유할 수 있다. 그리고 스태틱의 특성상 객체를 생성하지않고 클래스의 이름으로 상수에 바로 접근이 가능하다. 특징1 - const상수는 자동으로 static 가된다. 특징2 - const로 선언한 변수는 반드시 초기화 되어야 한다. 여러개의 const상수선언 ex) public const int A = 1, B=2, c=3; const상수는 반드시 컴파일시에 미리 상수의..
static 키워드 static 멤버필드 모든 클래스에서 공부하기 위한 멤버를 선언하기 위해 사용한다. eX) 학교의 컴퓨터실에 가보면 모든 컴퓨터는 하나의 패키지처럼 모든 요소를 하나씩 전부 가지고 있다. 그리고 컴퓨터내에 프린터까지 달려있다. 하지만 프린터는 하나밖에 없기에 모든 컴퓨터는 프린터를 공유해서 사용하는 형식이다. 이때 프린터는 static으로 잡혀 있는것이다. 주의점 1 - c#에서는 스태틱 에 접근할 때 반드시 클래스의 이름으로만 접근해야한다. 다른방법이 없다. ex) using System; public class StaticAccess2 { public static int sint = 0; public int nint = 0; pulbic static void Main() { Sta..
1) 값(value)에 의한전달 c#의 매개변수의 전달은 값복사를 기본으로 한다. 값복사란 두개의 메모리가 존재하고 한쪽의 메모리에 들어있는 값을 다른쪽의 메모리로 그값만을 복사하는 행위를 말한다. ex) using System; class TestValue { static void CallByVal(int x) { x= 10000; } public static void mian() { int x1 = 10; CallbyVal(x1) console.writeline("Call-by-value:{0}",x1); } } 결과값 : Call-by-value: 10 이렇게 call by value 로 값을 전달하게 되면, callbyval()함수의 매개변수인 x는 외부에 존재하는 x1의 값을 값복사 하기 때문에..