CLASS

    C# Reflection 이용하여 Class 속성, 값 출력하기

    using System; using System.Collections.Generic; using System.Reflection; namespace ReflectionTest { class Program { static void Main(string[] args) { Student stu = new() { Name = "범범조조", Age = 29 }; School school = new() { SchoolName = "가나다학교", Area = "한국", since = 2021 }; // Student 객체 값 출력 PrintPropertyInfo(stu); Console.WriteLine(); // School 객체 값 출력 PrintPropertyInfo(school); // stu 학생의 친구 리..

    C# 구조체 (struct) 클래스 (class) 차이

    struct 코드 struct Point { public int X; public int Y; public int Z; public Point(int x, int y, int z) { this.X = x; this.Y = y; this.Z = z; } public static Point operator +(Point p1, Point p2) { return new Point(p1.X + p2.X, p1.Y + p2.Y, p1.Z + p2.Z); } public String toString() { return "x: " + X + ", y: " + Y + ", z: " + Z; } } class 코드 class Point { public int X; public int Y; public int Z; pub..

    C# 중첩 클래스 (Nested Class)

    클래스 내부에서 클래스를 정의할 수 있다. 중첩 클래스를 사용하여 클래스를 그룹화할 수 있으며, 클래스의 사용 범위를 제한할 수 있다. class OutsideClass { // ... class InsideClass { // ... } } OutsideClass 내부에 InsideClass 클래스를 정의했으므로 OutsideClass는 중첩 클래스다. 사용하는 이유 클래스를 논리적으로 그룹화할 수 있다. 특정 클래스 내부에서만 사용되기 때문에 코드를 더 쉽게 파악할 수 있으며, 유지 관리가 쉽다. 특정 클래스 내부에서만 사용되므로 클래스 구조가 단순해진다. 예제 학교에는 선생님이 존재하므로 School 클래스 내부에 Teacher 클래스를 선언한다. public class School { public ..

    C++ 중첩 클래스 (Nested Class)

    중첩 클래스의 이름은 포함 클래스의 범위에 있으며 중첩 클래스의 멤버 함수에서 이름을 조회하면 중첩 클래스의 범위를 검사 한 후 포함 클래스의 범위를 방문한다. 둘러싸는 클래스의 다른 멤버와 마찬가지로 중첩 클래스는 둘러싸는 클래스가 액세스하는 모든 이름 (개인, 보호 등)에 액세스 할 수 있지만 그렇지 않으면 독립적이며 둘러싸는 클래스 this 포인터에 대한 특별한 액세스는 없다 . 중첩 클래스의 선언은 둘러싸는 클래스의 형식 이름, 정적 멤버 및 열거 자만 사용할 수 있다. (C ++ 11까지) 중첩 클래스의 선언 은 비 정적 멤버에 대한 일반적인 사용 규칙 에 따라 둘러싸는 클래스의 모든 멤버를 사용할 수 있다 . (C ++ 11부터) int x,y; // globals class enclose {..

    C# 부분 클래스 (partial)

    partial 키워드는 C#에서 부분 클래스를 지정한다, 장점으로는 여럿이서 하나의 프로젝트를 작업할 시 클린 코드를 유지할 수 있다는 점이다. 여러 책임이 있는 클래스가 있는 경우 각 클래스를 두 개의 구분자 클래스로 분할해야 한다. 부분 클래스를 사용하면 한 클래스의 정의를 여러 파일로 분할할 수 있다. 이 튜토리얼에서는 Person 클래스의 정의를 Person1.cs 및 Person2.cs 여러 파일로 분할한다. Person.cs using System; namespace partial_class { public partial class Person { private int id; private string name; public Person(int id, string name) { this.id ..