Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
Tags
- USDT
- #csharp #산술오버플로우 #checked #unchecked #overflowexception #정수연산 #오버플로우처리 #csharp세미나 #디버깅 #성능최적화
- 빗썸api
- #csharp #bool #boolean #논리연산자 #부울연산자 #단락평가 #조건문 #csharp기초 #삼항연산자 #csharp세미나
- #csharp #수치형식 #numerictypes #리터럴 #형식추론 #접미사 #decimal #float #double #프로그래미링기조 #그래피포뷰
- #csharp #double #decimal #실수형 #정밀도 #부동소수점 #고정소수점 #금융계산 #과학계산 #csharp세미나 #닷넷기초
- #csharp #연산자우선순위 #결합성 #operatorprecedence #연산자결합 #오른쪽결합 #왼쪽결합 #csharp세미나
- #csharp #비트연산자 #bitwiseoperators #flagsenum #masking #시프트연산 #비트연산 #성능최적화 #csharp세미나 #하드웨어제어
- #csharp #스택과힙 #메모리구조 #값형식 #참조형식 #박싱 #가비지컬렉션 #힙메모리 #메서드스택 #csharp세미나
- #csharp #산술연산자 #arithmeticoperators #기초프로그래밍 #csharp기초 #연산자우선순위 #정수연산 #실수연산 #math클래스 #나눗셈예외 #csharp세미나 #닷넷개발 #프로그래밍입문
- #csharp #부동소수점 #반올림오차 #실수계산 #float #double #decimal #mathround #정확도비교 #csharp세미나
- c#bool
- #csharp #부동소수점 #nan #infinity #특수값 #ieee754 #수치계산 #double #float #decimal #csharp세미나
- #csharp #관계연산자 #상등연산자 #equals #비교연산 #null비교 #float비교 #csharp기초 #csharp세미나 #문자열비교
- #csharp #배열 #다차원배열 #가변배열 #배열초기화 #indexrange #span #배열비교 #csharp기초 #배열세미나
- #csharp #널연산자 #nulloperator #널조건부연산자 #널접합연산자 #nullcheck #csharp세미나 #nullsafe #코드안정성
- 빛썸
- 테더
- #csharp #문자열 #문자 #string #char #문자열보간 #문자열연결 #문자열비교 #형식지정자 #문자변환 #csharp세미나
- #csharp #기본값 #definiteassignment #default키워드 #초기화규칙 #구조체초기화 #null값 #csharp세미나
- c#string
- 무노동수입
- #csharp #표현식 #배정표현식 #void표현식 #연산자 #산술연산자 #조건연산자 #표현식기초 #csharp세미나
- #csharp #수치변환 #형식변환 #자동변환 #명시변환 #convert #parse #tryparse #csharp세미나
- 자동매매
- c#
- 파이썬
- #csharp #조건연산자 #삼항연산자 #논리연산자 #단락평가 #ifelse축약 #조건문 #프로그래밍기초 #csharp세미나
- #csharp #var키워드 #타입추론 #암묵적형식지정 #익명형식 #linq #지역변수 #csharp세미나
- #csharp #매개변수 #ref #out #params #명명된인수 #선택적매개변수 #메서드전달 #csharp세미나
Archives
- Today
- Total
맛있는 개발노트 (맛과 개발을 함께)
C# 세미나 자료: var 키워드를 이용한 지역 변수의 암묵적 형식 지정 본문
1. 개요
C#에서는 var 키워드를 사용하여 지역 변수의 형식을 컴파일러가 자동 추론하도록 할 수 있습니다. 이를 **암묵적 형식 지정(implicitly typed local variables)**이라고 하며, 코드의 간결성과 가독성을 높이는 데 기여합니다.
본 세미나에서는 var의 개념과 사용 규칙, 장점과 주의사항, 실무에서의 적절한 활용법을 단계별로 설명합니다.
2. 기본 이론
2.1 var의 정의
- var는 키워드이며, 형식이 명확한 초기값이 있을 경우 해당 타입으로 컴파일 타임에 추론됨
- 런타임이 아닌 컴파일 타임에 형식이 결정됨
var number = 10; // int
var name = "Alice"; // string
var list = new List<string>(); // List<string>
2.2 사용 조건
- 반드시 초기화와 함께 선언되어야 함
var x; // 오류: 초기화 없이 선언 불가
var y = 3.14; // double로 추론됨
3. 단계별 설명
3.1 초급: 간단한 변수 선언
var age = 25; // int
var isActive = true; // bool
var greeting = "Hi"; // string
- 명시적 타입 없이 간단히 변수 선언 가능
- 코드 길이와 반복을 줄이는 데 유용
3.2 중급: 컬렉션, LINQ에서의 사용
var numbers = new[] { 1, 2, 3 };
var dict = new Dictionary<string, int>();
var query = from n in numbers
where n % 2 == 0
select n;
- 복잡한 타입(예: LINQ 결과, 익명형식 등)을 간결하게 선언할 수 있음
3.3 고급: 익명 형식 활용
var person = new { Name = "철수", Age = 30 };
Console.WriteLine(person.Name);
- var 없이는 익명 형식을 변수에 저장할 수 없음
4. 주의사항 및 팁
- var는 모든 경우에 사용하는 것보다 의미를 알 수 있는 타입에는 명시적으로 지정하는 것이 좋음
- 가독성을 해치지 않는 선에서 var 사용 권장
- var는 변수의 형식을 "동적으로" 지정하지 않음 → 타입 안정성 유지됨
- var는 클래스 필드, 매개변수, 반환값으로는 사용할 수 없음 (C# 12부터 var 리턴 타입 일부 허용 예정)
void Method(var value) { } // 오류: 매개변수에는 사용 불가
5. 결론
- var는 타입 추론을 통해 코드의 간결성과 생산성을 높이는 도구입니다.
- 특히 LINQ, 컬렉션, 익명 타입 사용 시 매우 유용합니다.
- 그러나 과도한 사용은 가독성을 해칠 수 있으므로, 명확한 의미를 드러낼 수 있을 때만 적절히 활용해야 합니다.
6. Q&A
Q1. var는 어떤 타입으로 결정되나요?
A1. 컴파일러는 초기화된 값을 기준으로 명확한 형식을 추론하여 정적으로 타입을 결정합니다.
Q2. var는 동적(dynamic) 타입인가요?
A2. 아니요. var는 컴파일 타임에 타입이 고정되며, dynamic은 런타임에 타입이 결정됩니다.
Q3. 클래스 필드나 매개변수에도 var를 쓸 수 있나요?
A3. 불가능합니다. var는 지역 변수에서만 사용 가능합니다.
Q4. var를 쓰면 성능이 떨어지나요?
A4. 전혀 그렇지 않습니다. 컴파일 시 명확한 형식으로 변환되기 때문에 성능상 차이가 없습니다.
'C# 학습 > C# 언어의 기초' 카테고리의 다른 글
C# 세미나 자료: 연산자 우선순위와 결합성 (Operator Precedence & Associativity) (0) | 2025.04.08 |
---|---|
C# 세미나 자료: 표현식과 연산자 (Expressions & Operators) (0) | 2025.04.08 |
C# 세미나 자료: 확정 배정 및 기본 값 (Definite Assignment & Default Values) (0) | 2025.04.08 |
C# 세미나 자료: 스택과 힙 (Stack & Heap) (0) | 2025.04.08 |
C# 세미나 자료: 매개변수 (Parameters) (0) | 2025.04.08 |