대입
값을 대입한다
픽처 박스의 위쪽 끝 위치를 의미하는 Top 프로퍼티 설정
c 드라이브 아래에 이미지 파일 car.bmp 저장
Form fm = new Form();
fm.Text = "샘플";
PictureBox pb = new PictureBox();
pb.Image = FromFile("c:\\car.bmp");
pb.Top = 100;
pb.Parent = fm;
Application.Run(fm);
프로퍼티 등에 기호 =를 사용해서 값을 설정하는 것 : 대입(assignment)
그 밖의 프로퍼티 값을 대입한다
Form fm = new Form();
fm.Text = "샘플";
PictureBox pb = new PictureBox();
pb.Image = Image.FromFile("c:\\car.bmp");
pb.Top = 100;
pb.Left = pb.Width;
pb.Parent = fm;
Application.Run(fm);
프로퍼티에 다른 프로퍼티의 값을 직접 대입할 수 있다
이처럼 프로퍼티 이용시 여러 컨트롤을 화면상에 정리해서 배치할 수 있음
형과 변수
형의 구조를 안다
각각의 프로퍼티에는 대입할 수 있는 값의 종류가 정해져 있다
C#에서는 수치를 직접 나타낼 때는 그대로 숫자를 기술하고, 문자열을 직접 나타낼 때는 문자열을 " " 로 감쌈
이러한 값의 종류 : 형(Type)이라고 함
C#의 주요 형
값형
정수
부호 있는 8비트 정수 sbyte
부호 없는 8비트 정수 byte
Unicode 문자 char
부호 있는 16비트 정수 short
부호 없는 16비트 정수 ushort
부호 있는 32비트 정수 int
부호 없는 32비트 정수 uint
부호 있는 64비트 정수 long
부호 없는 64비트 정수 ulong
부동소수점
32비트 부동소수점 수 float
64비트 부동소수점 수 double
데시멀
128비트 수 값 decimal
논리(true/false)
bool
참조형
문자열 string
클래스 각 클래스
포인터형
Top 프로퍼티 : 정수형
Text 프로퍼티 : 문자열형
Image 프로퍼티 : 참조형
★중요
형은 값의 종류를 나타낸다
여러 가지 형
형은 값의 종류를 나타냄
정수형으로는 정수 값, 부동소수점 수로는 소수를 나타낼 수 있음
원주율 3.14는 정수형으로는 나타낼 수 없으나 부동소수점 수형으로 나타낼 수 있음
비트 수가 많은 쪽이 보다 넓은 범위의 수치를 나타낼 수 있음
부호 없는 8비트 정수 byte는 0~255로 다뤄지는 색 값을 나타내기 위해 자주 사용되나, 10000 등의 큰 수치를 나타낼 수는 없음
수치로 값을 다룬다
C#에서는 프로그램 안에서 자신이 형을 지정해서 필요한 종류의 값을 일시적으로 지정할 수 있음 : 변수(variable)
Form fm = new Form();
fm.Text = "샘플";
int = w;
w = 100;
PictureBox pb = new PictureBox();
pb.Image = Image.FromFile("c:\\car.bmp");
pb.Top = w;
pb.Parent = fm;
Application.Run(fm);
w처럼 변수의 이름을 준비하는 것 : 변수의 선언(declaration)
변수의 선언
형 변수명;
변수로의 대입
변수명 = 값;
int w;
w = 100;
변수의 초기화(initialization)
변수를 선언하면 동시에 값을 대입할 수도 있음
int w = 100;
프로퍼티의 값을 여러 가지 계산 처리로 조작하기도 함
처리 도중 일시적으로 값을 기억해 두기 위한 작업용 변수가 필요하게 됨
★중요
변수를 준비하고 이용할 수 있다
오브젝트로 클래스형의 값을 다룬다
변수는 변수명을 사용해 여러 종류의 값을 일시적으로 저장하고, 다룰 수 있게 하기 위한 것
Form fm;
fm = new Form();
Form fm = new Form();
클래스형의 변수를 오브젝트로 초기화함
★중요
오브젝트는 클래스 형의 변수이다
변수
이 메모리 내의 데이터를 다룰 수 있게 하는 구조
값형(수치형)의 변수는 메모리에 기억되고 있는 데이터를 그대로 다룰 수 있게 한 것
참조형의 변수 : 오브젝트에 관한 값이나 기능이 기억된 메모리의 장소를 나타낸(참조한) 것
참조형의 변수가 오브젝트를 참조하고 있지 않은 상태는 null
연산자
연산자를 사용한다
Form fm = new Form();
fm.Text = "샘플";
PictureBox pb = new PictureBox();
pb.Image = Image.FromFile("c:\\car.bmp");
pb.Top = pb.Top + 10;
pb.Left = pb.Left + 10;
pb.Parent = fm;
Application.Run(fm);
+와 같은 기호 : 연산자(operator)
연산자에 의해 계산되는 대상 : 오퍼랜드(operand)
연산자 +는 2개의 수치를 오퍼랜드로서 합하는 기능을 가진 연산자
기호 = : 같다는 의미가 아닌 값을 대입한다는 기능을 가짐
사칙 연산을 시행한다
Form fm = new Form();
fm.Text = "샘플";
PictureBox pb = new PictureBox();
pb.Image = Image.FromFile("c:\\car.bmp");
pb.Top = (fm.Height - pb.Height) / 2;
pb.Left = (fm.Width - pb.Width) / 2;
pb.Parent = fm;
Application.Run(fm);
중앙에 표시한다
pb.Top = (fm.ClientSize.Height - pb.Height) / 2;
pb.Left = (fm.ClientSize.Width - pb.Width) / 2;
연산자의 종류
+ | 덧셈 | <= | 이하 |
- | 뺄셈 | == | 같다 |
* | 곱셈 | != | 같지 않다 |
/ | 나눗셈 | ! | 논리 부정 |
% | 나머지 | && | 논리곱 |
+ | 단항 + | || | 논리합 |
- | 단항 - | is | 호환성 검사(값형) |
~ | 보수 | as | 호환 |
& | 비트 논리곱 | ( ) | 캐스트 |
& | 주소 참조 | . | 순차 |
| | 비트 논리합 | ( ) | 함수 호출 |
^ | 비트 배타적 논리합 | sizeof | 크기 |
= | 대입 | [ ] | 배열 첨자 |
<< | 왼쪽 시프트 | . | 멤버 참조 |
>> | 오른쪽 시프트 | -> | 멤버 참조 |
++ | 인크리먼트 | => | 람다식 |
-- | 디크리먼트 | ?: | 조건 |
> | 보다 크다 | new | 오브젝트 작성 |
>= | 이상 | typeof | 형 얻기 |
< | 미만 | delegate | 익명 메서드 |
인크리먼트 디크리먼트 연산자
a++; 변수 a의 값이 1 증가
++ 연산자 : 인크리먼트 연산자(increment operator)
a = a + 1;
이렇게 적어도 됨
-- 연산자 : 디크리먼트 연산자(decrement operator)
b = b + 1;
이렇게 적어도 됨
★중요
인크리먼트(디크리먼트) 연산자는 변숫값을 1 덧셈(뺄셈)한다
인크리먼트 디크리먼트의 사용법
값을 하나씩 증가하거나 줄이거나 해서 어떠한 처리의 횟수를 1회씩 카운트할 때 자주 이용
for문에서 이 연산자가 자주 사용됨
대입 연산자(assignment operator)
좌변의 변수에 우변의 값을 대입한다
대입 연산자의 베리에이션
기호 | 이름 |
+= | 덧셈 대입 |
-= | 뺄셈 대입 |
*= | 곱셉 대입 |
/= | 나눗셈 대입 |
%= | 나머지 대입 |
&= | 논리곱 대입 |
^= | 배타적 논리합 대입 |
|= | 논리합 대입 |
<<= | 왼쪽 시프트 대입 |
>>= | 오른쪽 시프트 대입 |
a += b;
a+b의 값을 a에 대입한다
변수 a의 값에 변수 b의 값을 더하고, 그 값을 다시 변수 a에 대입한다
레슨의 정리
- 값을 대입하는 데는 기호 =를 사용
- 형에는 여러 종류가 있음
- 변수에 값을 저장할 수 있음
- 변수의 이름에는 식별자를 사용함
- 연산자는 오퍼랜드와 조합하여 식을 만듦
- 인크리먼트 디크리먼트 연산자를 사용하면 변수의 값을 1 덧셈 또는 뺄셈할 수 있음
- 복합적인 대입 연산자를 사용하면 사칙 연산과 대입 연산을 조합한 처리를 시행할 수 있음
- + 연산자로 문자열을 연결할 수 있음
출처) 그림으로 배우는 C#
'C#' 카테고리의 다른 글
[C#] 클래스의 설계 (0) | 2024.05.27 |
---|---|
[C#] 처리의 제어 (0) | 2024.05.24 |
[C#] C#의 기본 (0) | 2024.05.17 |
[C#] 첫 걸음 (0) | 2024.05.16 |
[C#] 배열 (0) | 2024.05.13 |