본문 바로가기

C#60

C#의 is 와 as 키워드 (#02) 1편에서는 is 와 as 에 대한 기본적인 코드를 가지고 살펴보았습니다. 이번 편에서는 보다 실용적인 예제를 다뤄보겠습니다. 예시 클래스class Enemy{ public virtual void Cry() { Console.WriteLine("Enemy 가 괴성을 지릅니다"); }}class Zombie : Enemy{ public override void Cry() { Console.WriteLine("Zombie : 으어어어..."); }}class Robot : Enemy{ public override void Cry() { Console.WriteLine("Robot: 삐비빅! 시스템 경고!"); } .. 2025. 6. 26.
C#의 is 와 as 키워드 (#01) C# 에서는 객체가 어떤 타입인지 확인하거나, 타입 변환을 안전하게 수행할 때 is 와 as 키워드를 자주 사용합니다. 이 둘은 형변환과 타입 검사를 보다 깔끔하게 처리하기 위한 문법입니다. is 키워드 : 타입인지 확인만 하고 싶을 때is는 객체가 특정 타입인지 확인하는 데 사용합니다. true 또는 false를 반환합니다.object obj = "Hello"; if (obj is string) { Console.WriteLine("obj는 string입니다."); } C# 7.0 이상에서는 아래처럼 패턴 매칭과 함께 변수를 선언하며 사용할 수 있습니다.if (obj is string s) { // s는 string으로 자동 변환됨 Console.WriteLine(s.ToUpper(.. 2025. 6. 26.
C# 의 상속이 C++ 과 다른 점 C++ 에서 상속을 배운 경험이 있는 사람이라면, C# 에도 동일한 개념이 있기 때문에 특별히 배울 필요가 없이 넘어갔을지도 모릅니다. 그런데 C# 에서의 상속은 C++ 과 비교해 몇가지 부분에서 결정적인 차이가 있습니다.이건 단순한 문법 차이가 아니라, 언어의 철학과 설계 방향이 달라서 생긴 아주 중요한 차이입니다.이 글에서는 C++과 C#의 상속 구조가 어떻게 다르고, 왜 C#은 다중 상속을 허용하지 않는지를 비교해서 정리해 보겠습니다. C++ 의 다중 상속 C++에서는 다음과 같이 여러 클래스를 동시에 상속할 수 있습니다.class A { public void SayA() { std::cout • C는 A, B 모두의 기능을 한꺼번에 상속합니다.• public, private, prote.. 2025. 6. 25.
=> 에 대한 진실과 오해 : 이것은 람다일까? 아닐까? C# 을 배우다 보면 자주 마주치는 기호 : => () => Console.WriteLine("Hello");많은 사람들이 이것을 그냥 “람다(Lambda)”라고 부르곤 하지만, 사실 이 기호는 두 가지 전혀 다른 문법에서 사용됩니다. 즉, 모양은 같지만 의미와 쓰임새가 완전히 다른 두 가지가 존재하기 때문에, => 기호를 무조건 “람다”라고 부르는 것은 부정확한 표현입니다.따라서 이 두 문법을 구분해서 이해한다면, 더 이상 => 때문에 헷갈릴 일은 없을 것입니다. 람다식 (Lambda Expression) : 익명 함수 람다식은 이름 없는 함수(익명 함수) 를 만들어서 delegate, Action, Func 등에 대입할 수 있도록 하는 문법입니다. Action sayHello = () => Cons.. 2025. 6. 23.
C# 다형성(Polymorphism) 정리 C# 에서 클래스의 상속 관계를 정의할 때, virtual 와 override 를 이용해 함수를 구현하는 경우가 종종 있습니다. 이것은 클래스의 다형성을 활용하기 위한 방법입니다. 다형성 (Polymorphism) 이란?다형성은 "하나의 타입으로 여러 가지 형태를 다룰 수 있는 성질" 을 의미합니다.한자로는 多形性, 즉 "여러 개의 형태를 가진 성질" 이라는 뜻이고,영어로는 Polymorphism (poly = 여러, morph = 형태)입니다.프로그래밍에서 하나의 부모를 상속받은 여러 개의 자식 클래스가 있을 경우, 어떤 자식으로 인스턴스를 생성했느냐에 따라 부모가 각각의 자식 형태로 모습을 띄게 되는 것을 말합니다. 기본 개념1. 부모 클래스는 virtual로 메서드를 정의2. 자식 클래스는 ove.. 2025. 6. 23.
속성(Property)의 동작 원리 속성이란 무엇인가?C# 에서 속성(property) 은 필드처럼 보이지만, 실제로는 메서드처럼 동작하는 기능입니다.읽기/쓰기 시점에 자동으로 특정 함수를 호출할 수 있게 해주는 문법적인 장치입니다.public string Name { get; set; } 이런 문법은 내부적으로 함수 두 개 (get 과 set) 로 변환됩니다. 자동 구현 속성 : { get; set; } 의 정체 아래와 같은 자동 구현 속성이 있다고 할 때,public string Name { get; set; } 컴파일되면 실제로는 다음과 같은 코드로 변환됩니다private string k__BackingField;public string get_Name(){ return k__BackingField;}public void se.. 2025. 6. 23.