목록C# (38)
아디봉의.net
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의 값을 값복사 하기 때문에..
프로세스란? 프로그램이 로딩되어 실행가능한 상태가 되었을 때의 메모리를 프로세스라고 한다. 구성 1.데이터 메모리 영역 - 프로그램에서 사용하는 데이터들을 모아두는 메모리공간 2.클래스영역(코드메모리 영역) - 프로그램의 코드가 위치하는 3.스택메모리 영역- 프로그램이 실행될때 필요한 메모리 공간 stack메모리 영역 * 함수가 호출되는 데 필요한 메모리 - 지역변수 (local variable) - 매개변수 (parameter) - 리턴값이 저장될 곳(return value) 이들 메모리는 함수 하나당 하나씩 필요함. 함수를 호출하기 전에 반드시 호출에 필요한 메모리를 stack에 만들어야 한다. 이때 하나의 함수에 필요한 메모리 덩어리를 묶어서 스택 프레임(stack frame)이라고한다. stack..
구조체와 클래스의 차이 클래스와 구조체는 데이터 타입생성기 라는 점에서는 유사하지만, 구조체는 값타입이라는것과 클래스는 참조타입이라는 점에서 차이점이 있다. 구조체를 사용하는이유는 클래스 사용시에 참조로인한 시간적 비용적 낭비를 없애기 위해 사용한다. 구조체는 값타입이기에 직접적으로 메모리에 접근하기므로 그낭비를 막을수 있다. c#에서는 크기가 작고 단순한 함수들을 포함하는 선, 컬러 들과 같은 그래픽요소등을 구조체로 정의해두었다. 또한 구조체와 클래스의 다른점은 구조체는 상속자체가 불가능하다. struct Person{ public int age; public long height; public float weight; public Person(int a, long h, float w) { age =a..
SOA 비지니스지만 어떤 플렛폼이든지 실행될수 있는기술 또는 업무이다. ESB (enterprice service bus) 어떤특정한일을 하는 미들웨어 각각을 연결해주는 미들웨어 서로다른 여러개의 플렛폼을 상호운영성 있게 연결해주는 미들웨어 ex) biztok server 웹서비스 (w3규약) 상호운영성을 운영할수 있게 ms의 웹서비스가 있는데 서로다른 플렛폼을 연결해서 사용하면되지 않느냐하겠지만 급변하는 표준을 맞추기가 힘들어서 현실에 맞지않은 것이다. 이때문에 ESB가 필요하다는것이다. BPM (bisginess project manager) 업무가 변경될시에 민첩하게 변경된업무에 적응하느냐 ex) 한개의 업무를 A-> B -> C-> d -> 이동하는 업무가있다고 가정하고, 만약에 이 업무가 변경되..
값타입과 참조타입의 변수 값타입의 경우 이름을 선언함과 동시에 메모리가 할당되지만, 참조타입의 경우에는 변수의 선언과 변수에 대한 메모리의 할당이 분리되어있다. Person sister = new Person(); Person = 클래스로 생성한 데이터 타입 sister = Person데이터타입으로선언한 변수 new = 메모리를 생성하는 연산자 Person() = 메모리 생성후 초기화 작업을 담당하는 생성자 Person sister; //변수의 이름을 선언하는 의미 sister = new Person(); //만든 이름에 메모리를 할당하는 의미 객체(Object)의 개념 객체도 변수의 한형태이며 클래스에서 만들어졌다해서 객체(Object)또는 인스턴스(Instance)라고 부른다. 우리는 값타입으로 변수..
c#에서 제공하는 기본적인 데이터 타입은 int, long, float, double, char,,,등이있다. 이러한 데이터 타입에 명시된 built-in 데이터 타입을 우리는 단순타입이라고 한다. * built-in 타입의 한계 - 정해진 형의 데이터만 넣을수 있다. 즉 데이터 타입에 명시된 형태의 데이터만을 넣어야 하는것이다. 이러한 한계를 극복하기 위해 여러개의 변수를 묶어서 새로운 데이터 타입으로 만드는 방법을 구조체와 클래스가 제공한다. 대표적 사용자 정의 데이터 타입 - 구조체 : 값타입의 사용자 정의 데이터 타입 (선언과 동시에 메모리 할당- 값타입특징) - 클래스 : 참조타입의 사용자 정의 데이터 타입 (변수의 선언과 동시에 메모리가 만들어지지 않음) ex) class선언 class Per..
1. Value (값타입) value타입으로 변수를 선언하면 자동으로 메모리가 생성된다. ex)int a; //4byte 메모리생성 A.built-in 값타입 정수형: byte, char2(2byte), int, long 실수형: float, double, decimal(16byte) 불형: bool B.User-Define 값타입 사용자가 직접 메모리의 지도를 만들어 사용하기 떄문에 단순한 타입이 아니다. struct - 구조체는 기본으로 제공되는 데이터 타입이 아니라 사용자가 직접 만들어서 사용하는 데이터 타입이다. 즉 데이터 타입을 사용자가 직접 만들어서 사용하는 것이다. ex) struct Person { int num; //Person 내부의 멤버 int age; //Person 내부의 멤버 d..
is 비교연산자 is연산자는 두객체가 동일한지 비교하는데 사용됩니다. char data = 'a'; if(data is char) { } else{} data객체가 char일경우 is연산자는 참 값을 반환합니다. as연산자 객체가 호환되지않으면 null값을 할당하고, 호환되면 형식변환(casting)까지 시켜줍니다. as연산자는 강제형변환과 비슷하며 변환시 예외가 발생하면 null값을 채움 string obj = data as string if(obj !=null) { //코드 } [표현식]is[데이터타입]?(데이터타입)[표현식]:(데이터타입)null