C#교과서 마스터하기 12. 구조체

min seung moon·2021년 7월 10일
0

C#

목록 보기
12/54

https://www.youtube.com/watch?v=O6g8VAeQS9w&list=PLO56HZSjrPTB4NxAsEP8HRk6YKBDLbp7m&index=41

1. 구조체(Stucture Types)

  • 구조체란?

    • 하나 이상의 변수 또는 배열을 묶어서 관리
    • 여러 개의 데이터 형식을 하나로 묶어서 관리하는 개념
    • 하나의 이름으로 여러 데이터 형을 보관
    • 클래스 구조보다 접근이 빠름(스택 사용)
    • 상속 불가능
    • 프로그램 내에서 데이터 보관 용도로 사용
  • 데이터 보관 관점 비교

    • 변수(Variable)
      • 하나의 이름으로 하나의 데이터 형식을 하나만 보관하는 그릇
    • 배열(Array)
      • 변수 확장
      • 하나의 이름으로 하나의 데이터 형식을 여러 개 보관
    • 구조체(Struct)
      • 변수 / 배열의 확장
      • 하나의 이름으로 여러 개의 데이터 형식을 하나/여러 개 보관

2. 구조체 선언 및 사용

  • 구조체 선언
public struct Employee
{
	public string Name;
	public int Age;
}

  • 구조체 사용
Employee companyEmployee;
companyEmployee.Name = "mms";
companyEmployee.Age = 25;

using System;
using static System.Console;

namespace testProject
{
    class Program
    {
        public struct Employee
        {
            public string Name;
            public int Age;
        }

        static void Main(string[] args)
        {
            Employee employee;
            employee.Name = "mms";
            employee.Age = 25;

            WriteLine($"{employee.Name} 사원의 나이는 {employee.Age} 입니다.");
        }
    }
}

3. DateTime & TimeSpan 구조체

using System;
using static System.Console;

namespace testProject
{
    class Program
    {
        

        static void Main(string[] args)
        {
            // 현재 날짜와 시간을 구하는 구조체
            WriteLine($"현재 날짜 : {DateTime.Now}");
            WriteLine($"현재 연도 : {DateTime.Now.Year}");
            WriteLine($"현재 월 : {DateTime.Now.Month}");
            WriteLine($"현재 일 : {DateTime.Now.Day}");
            WriteLine($"현재 시간 : {DateTime.Now.Hour}");
            WriteLine($"현재 븐 : {DateTime.Now.Minute}");
            WriteLine($"현재 초 : {DateTime.Now.Second}");
            WriteLine($"현재 밀리초 : {DateTime.Now.Millisecond}");

            DateTime now = DateTime.Now;
            // 날짜에 대한 차이를 저장하는 구조체
            TimeSpan ts = (DateTime.Now - (new DateTime(1997, 2, 5)));
            WriteLine(ts.TotalDays);
            WriteLine(Math.Ceiling(ts.TotalDays));
        }
    }
}

4. Guid 구조체

  • 유니크한 값을 만들고 싶을 때 사용
using System;
using static System.Console;

namespace testProject
{
    class Program
    {
        

        static void Main(string[] args)
        {
            WriteLine(Guid.NewGuid());
        }
    }
}

profile
아직까지는 코린이!

0개의 댓글