checked 형변환

 

 

 

 

 

Ø앞의 예제에서 intshort로 묵시적 형 변환 할 수 없고, 명시적으로 변환하면 overflow 가 발생한다. 따라서 형변환 하기 전에 int값을 미리 검사해야 할 것이다. (프로그래머에게 엄청난 스트레스가 될 듯)

 

ØC#에서는 checked/unchecked 키워드를 제공한다. checked 키워드 내부에서 overflow가 발생했는지를 검사하여 예외를 발생시킨다.

 

Ø간단한 사용예

 short value4 = checked ((short) value3);

 

 

 

 

설명) 형변환

 

 

 

 

 

(1) 방법이 바로 묵시적 형 변환이다. short형을 int 형으로 묵시적으로 바꾸어준다.

 

(2)
묵시적 방법으로 intshort로 바꾸는 것은 에러이다. 오버플로우의 가능성이 있기 때문이다. 때문에, 명시적 형변환을 사용한다.

 

(3)
int명시적으로 short형변환 하였다. 이때 에러는 발생하지 않는다. 하지만 분명 너무 큰 값을 short로 변환하였기 때문에 문제가 있을 것이다.

 

(4)
에서 결과 값은 -15536가 나온다. 오버플로우로 인해, 정상적으로 형 변환 되지 않았다는 의미가 된다.

 

 

 

 

 

예제) 형 변환

 

 

 

 

using System;

class TypeCast03

{

  public static void Main()

  {

  short value1 = 100;

  int   value2 = value1;  //ß(1)

  int   value3 = 50000;

  //short value4 = value3;  //ß(2)

  short value4 = (short) value3;  //ß(3)

  Console.WriteLine("Short : {0}",value4);  //ß(4) 

  }

}

 

 

 

 

 

형 변환 (Type Casting)

 

 

 

 

Ø변수에 담겨진 값을 다른 형식으로 변환하는 연산

 

Øint i=j (jshort일때)를 수행하면, j의 값은 int로 형 변환 되어 i에 저장되어야 한다.

 

Øshortint로 바꾸는 것은 문제의 소지가 없다. intshort로 바꾸는 것은 오버플로우를 야기할 가능성이 있다. 이때는 원하는 값으로 형 변환 되지 않을 가능성이 크다.

 

Ø형 변환은 묵시적 방법(coercion)과 명시적(casting) 방법이 있다.

  (다음에 올라올 포스팅 참조)

 

 

 

 

 

변수 작명법 (권고 사항)

 

 

 

 

Ø특수문자 사용하지 말것. _첫글자로 하는 변수명도 삼가도록 한다.

 

Ø첫글자를 대문자로 하지 않도록 한다. 메소드나 클래스 또는 프로퍼티와 혼동하기 쉽다.

 

Ø여러단어로 구성된 변수는 첫글자는 소문자로 나머지 단어의 첫머리는 대문자로 하는게 좋다.

 

Ø영문 알파벳만으로 변수명을 짓도록 하는게 좋다.

 

Ø변수의 정확한 역할을 이름에 명시 하는게 좋다. x, temp, boo 이런 식의 이름은 복잡한 프로그램의 경우 가독성을 떨어뜨린다.

 

 

 

 

 

예약어 목록

 

 

 

 

 

 abstract

 as

 base

 bool

 break

 byte

 case

 catch

 char

 checked

 class

 const

 continue

 decimal

 default

 delegate

 do

 double

 else

 enum

 event

 Explicit

 extern

 false

 finally

 fixed

 float

 for

 Explicit

 goto

 if

 implicit

 in

 int

 interface

 Internal

 is

 lock

 long

 namespace

 new

 null

 Object

 operator

out

override

params

private

protected

Public

readonly

ref

return

sbyte

sealed

short

Sizeof

stackalloc

static

string

struct

switch

this

Throw

true

try

typeof

unit

ulong

unchecked

Unsafe

ushort

using

virtual

void

while

~

#

$

^

&

*

 

 

 

 

 

 

 

변수 이름

 

 

 

 

Ø변수 이름 짓는 규칙
l문자, 숫자, _ 를 사용할 수 있다.
l숫자로 시작할 수는 없다.
l예약 단어를 변수명으로 할 수 없다.

  : int가 예약이면 intB라는 변수는 사용가능

l예약특수 문자는 사용할 수 없다. 이것은 주로 연산자로 사용되기 때문이다.

  : &가 예약문자 이므로  a&b는 사용불가. 이런 경우 ab가 서로 다른 변수인 것 처럼 다루어진다.

 

 

 

 

변수(Variable)

 

 

 

Ø변수의 선언 방법은 C/C++에서의 방법과 같다.

 

Ø변수는 변화할 수 있다는 의미이다. 변수가 담고 있는 값이 변한다는 뜻이다. i=j+1; 라는 문장에서 i가 변수라면 i 값은 변한다.

 

Ø
변수선언 방법은 다음과 같이 다양하다.

 

Ø변수는 사용 전에 반드시 초기화 되어야 한다.

int a;

int x, y, z;

System.Int32 b, c;

int a1=1, a2=2;

int  b1,b2=2;

 

 

 

 

 

+ Recent posts