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 | 31 |
Tags
- #csharp #산술연산자 #arithmeticoperators #기초프로그래밍 #csharp기초 #연산자우선순위 #정수연산 #실수연산 #math클래스 #나눗셈예외 #csharp세미나 #닷넷개발 #프로그래밍입문
- #csharp #수치변환 #형식변환 #자동변환 #명시변환 #convert #parse #tryparse #csharp세미나
- #csharp #부동소수점 #nan #infinity #특수값 #ieee754 #수치계산 #double #float #decimal #csharp세미나
- #csharp #매개변수 #ref #out #params #명명된인수 #선택적매개변수 #메서드전달 #csharp세미나
- #csharp #산술오버플로우 #checked #unchecked #overflowexception #정수연산 #오버플로우처리 #csharp세미나 #디버깅 #성능최적화
- #csharp #문자열 #문자 #string #char #문자열보간 #문자열연결 #문자열비교 #형식지정자 #문자변환 #csharp세미나
- #csharp #스택과힙 #메모리구조 #값형식 #참조형식 #박싱 #가비지컬렉션 #힙메모리 #메서드스택 #csharp세미나
- #csharp #bool #boolean #논리연산자 #부울연산자 #단락평가 #조건문 #csharp기초 #삼항연산자 #csharp세미나
- 빛썸
- 빗썸api
- #csharp #부동소수점 #반올림오차 #실수계산 #float #double #decimal #mathround #정확도비교 #csharp세미나
- #csharp #비트연산자 #bitwiseoperators #flagsenum #masking #시프트연산 #비트연산 #성능최적화 #csharp세미나 #하드웨어제어
- #csharp #수치형식 #numerictypes #리터럴 #형식추론 #접미사 #decimal #float #double #프로그래미링기조 #그래피포뷰
- c#string
- #csharp #배열 #다차원배열 #가변배열 #배열초기화 #indexrange #span #배열비교 #csharp기초 #배열세미나
- #csharp #연산자우선순위 #결합성 #operatorprecedence #연산자결합 #오른쪽결합 #왼쪽결합 #csharp세미나
- c#
- #csharp #var키워드 #타입추론 #암묵적형식지정 #익명형식 #linq #지역변수 #csharp세미나
- #csharp #double #decimal #실수형 #정밀도 #부동소수점 #고정소수점 #금융계산 #과학계산 #csharp세미나 #닷넷기초
- #csharp #기본값 #definiteassignment #default키워드 #초기화규칙 #구조체초기화 #null값 #csharp세미나
- 무노동수입
- #csharp #널연산자 #nulloperator #널조건부연산자 #널접합연산자 #nullcheck #csharp세미나 #nullsafe #코드안정성
- 자동매매
- 파이썬
- #csharp #조건연산자 #삼항연산자 #논리연산자 #단락평가 #ifelse축약 #조건문 #프로그래밍기초 #csharp세미나
- USDT
- 테더
- c#bool
- #csharp #표현식 #배정표현식 #void표현식 #연산자 #산술연산자 #조건연산자 #표현식기초 #csharp세미나
- #csharp #관계연산자 #상등연산자 #equals #비교연산 #null비교 #float비교 #csharp기초 #csharp세미나 #문자열비교
Archives
- Today
- Total
맛있는 개발노트 (맛과 개발을 함께)
C# 세미나 자료: 형식의 기초 (Basics of Types) 본문
1. 개요
C#은 정적 타입 언어로, 모든 데이터는 형식(Type)을 기반으로 정의되고 처리됩니다. 본 세미나에서는 형식 시스템의 기초, 미리 정의된 형식과 커스텀 형식, 형식의 구성 멤버, 그리고 기정의 형식과 사용자 정의 형식의 대칭성에 대해 초급~고급 단계별로 살펴봅니다.
2. 기본 이론
2.1 형식이란?
- 형식(Type): 값의 범위와 허용되는 연산을 정의하는 규칙 집합
- C#에서는 모든 값은 형식을 가지고 있으며, 모든 형식은 System.Object를 기반으로 함
2.2 주요 분류
- 값 형식(Value Type): int, double, bool, struct, enum 등 (스택에 저장)
- 참조 형식(Reference Type): class, string, object, interface, delegate 등 (힙에 저장)
3. 단계별 설명
3.1 초급: 미리 정의된 형식
이론 요약
- C#은 .NET에서 제공하는 다양한 **기본 형식(Built-in types)**을 정의
- 이들은 System.Int32, System.Boolean 등으로 연결됨
예시 코드
int number = 10; // System.Int32
float pi = 3.14f; // System.Single
bool isReady = true; // System.Boolean
string message = "Hello"; // System.String
주의사항
- 기본형은 키워드 형태(int, bool)로 사용하지만 .NET 형식명도 동일하게 동작
- 값 형식은 null을 가질 수 없음 (nullable로 선언 가능: int?)
3.2 중급: 사용자 정의 형식 (Custom Type)
이론 심화
- 사용자 정의 형식은 class, struct, enum, interface, record 등으로 구현 가능
- 필요한 데이터와 동작을 함께 캡슐화
예시 코드
// 클래스 정의
class Person
{
public string Name;
public int Age;
public void SayHello()
{
Console.WriteLine($"안녕하세요, 저는 {Name}입니다.");
}
}
// 구조체 정의
struct Point
{
public int X;
public int Y;
}
// 열거형 정의
enum DayOfWeek
{
Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday
}
팁
- 구조체는 가벼운 데이터 표현에 적합하며 값 형식임
- 클래스는 참조 형식이므로 복사 시 참조 전달
3.3 고급: 형식의 멤버와 대칭성 이해
이론 고급
- 모든 형식은 **멤버(Members)**를 가질 수 있음:
- 필드, 속성, 메서드, 생성자, 이벤트, 인덱서, 연산자 오버로딩 등
- .NET 기본 형식도 내부적으로 class, struct로 정의되어 있음 → 사용자 정의 형식과 대칭적 구조
예시 코드
// 기본 형식도 메서드와 속성을 가짐
int number = 123;
Console.WriteLine(number.ToString()); // int는 ToString 메서드를 가짐
// 사용자 정의 형식 예시
class Calculator
{
public static int Add(int a, int b) => a + b; // 메서드
public int Result { get; set; } // 속성
}
실무 관점 팁
- 형식을 설계할 때 필요한 멤버를 효율적으로 배치해야 유지보수에 유리
- 기본 형식과 유사한 방식으로 사용자 형식을 정의할 수 있음 → 학습 곡선 완화
4. 형식 설계 시 고려사항
요소설명
명확성 | 의미 있는 이름 부여 |
불변성 | 필요 시 readonly 또는 immutable 설계 |
캡슐화 | 접근 제한자(public/private) 사용 |
대칭성 | .NET 기본 형식처럼 통일성 있게 설계 |
5. 결론
- C#에서 모든 값은 형식을 기반으로 함
- 미리 정의된 형식과 사용자 정의 형식은 유사한 구조를 가짐
- 형식의 멤버를 이해하면 더 유연하고 확장 가능한 구조 설계 가능
- 기본 형식과 커스텀 형식의 대칭성은 C# 학습과 실무 설계에서 매우 중요한 개념
6. Q&A
- Q: 구조체와 클래스의 가장 큰 차이는? A: 구조체는 값 형식, 클래스는 참조 형식입니다.
- Q: 사용자 정의 형식에도 메서드를 정의할 수 있나요? A: 네, 필드, 속성, 메서드 등 다양한 멤버를 정의할 수 있습니다.
- Q: 기본형도 메서드를 가지나요? A: 네. 예를 들어 int는 ToString(), CompareTo() 등의 메서드를 가집니다.
감사합니다!
'C# 학습 > C# 언어의 기초' 카테고리의 다른 글
C# 세미나 자료: 값 형식과 참조 형식 (0) | 2025.04.07 |
---|---|
C# 세미나 자료: 생성자와 인스턴스화 (0) | 2025.04.07 |
C# 세미나 자료: 주석 (Comments) (0) | 2025.04.07 |
C# 세미나 자료: 리터럴, 구두점, 연산자 (0) | 2025.04.07 |
C# 세미나 자료: 식별자와 키워드 (0) | 2025.04.07 |