유니티3D 프로그래밍

C# 1주차 5일 수업 내용 (21.03.12) 본문

C#/수업내용

C# 1주차 5일 수업 내용 (21.03.12)

tjdgus9955 2021. 3. 12. 10:47

ret와 out

 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Study00
{
    public class App
    {
        //생성자
        public App()
        {
            int x = 10; // 초기화 필요

            PassByValue(x);
            Console.WriteLine(x);

            PassByReference(ref x);
            Console.WriteLine(x);

            int y; // 초기화 필요 없음
            OutParameter(out y);
            Console.WriteLine(y);
        }
        public void PassByValue(int a)
        {
            a += 3;
        }

        public void PassByReference(ref int a)
        {
            a += 3;
        }

        public void OutParameter(out int a)
        {
            a = 10;
            a *= a;
        }
    }
}

params 키워드

 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Study00
{
    public class App
    {
        //생성자
        public App()
        {
            ParamsMethod1(1, 2, 3, 4, 5);
            ParamsMethod2(1, 2, 3, 4, 5);
            ParamsMethod3(1, 2, "홍길동", "임꺽정", new Unit());
        }

        public void ParamsMethod1(int a, int b, int c, int d, int e)
        {
            Console.WriteLine(a);
        }

        public void ParamsMethod2(params int[] arr)
        {
            for(int i = 0; i < arr.Length; i++)
            {
                Console.Write("{0} ",arr[i]);
            }
        }

        public void ParamsMethod3(params object[] arr)
        {
            object obj = arr[4];
            Unit unit = (Unit)obj;
        }
    }
}

 

배열

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Study00
{
    public class App
    {
        //생성자
        public App()
        {
            //정수 배열 변수 선언
            int[] arr = new int[5];

            //배열 인스턴스의 0번째 인덱스 변수에 값 할당
            arr[0] = 2;

            //배열 인스턴스의 0번째 인덱스 변수의 값 출력
            int a = arr[0];
            Console.WriteLine(arr[0]);
            Console.WriteLine(a);

            //배열의 길이 출력
            Console.WriteLine(arr.Length);  //5
            
            //배열의 마지막 인덱스
            int lastIndex = arr.Length - 1; //4

            //배열의 마지막 인덱스 값
            int b = arr[lastIndex];

        }
    }
}

배열의 요소 출력

 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Study00
{
    public class App
    {
        //생성자
        public App()
        {
            //정수 배열 변수 선언
            int[] arr = new int[5];
            arr[1] = 100;

            //for문을 사용해 배열의 요소의 값 출력
            for(int i = 0; i < arr.Length; i++)
            {
                int num = arr[i];
                Console.WriteLine(num);
            }

            //foreach문을 사용해 배열의 요소의 값 출력
            foreach(int num in arr)
            {
                Console.WriteLine(num);
            }
            

        }
    }
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Study00
{
    public class App
    {
        //생성자
        public App()
        {
            //Unit타입 배열 변수 선언
            Unit[] units = new Unit[5];
            //Unit타입 배열 요소에 값 할당
            for (int i = 0; i < 4; i++)
            {
                units[i] = new Unit();
            }

            //Unit타입 배열의 길이 출력
            Console.WriteLine(units.Length);

            //Unit타입 배열의 요소 출력
            //for 문
            for(int i = 0; i < units.Length; i++)
            {
                Unit unit = units[i];
                Console.WriteLine(unit);
            }
            
            //foreach 문
            foreach(Unit unit in units)
            {
                Console.WriteLine(unit);
            }
        }
    }
}

string 배열 연습

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Study00
{
    public class App
    {
        //생성자
        public App()
        {
            //string배열 변수 선언
            string[] arr;

            //string 배열 인스턴스 생성 (빈배열)
            arr = new string[3];

            //string 배열 인스턴스 요소에 값 할당
            //"홀길동," "임꺽정", "장길산"
            arr[0] = "홍길동";
            arr[1] = "임꺽정";
            arr[2] = "장길산";

            //배열의 길이 출력
            Console.WriteLine("배열의 길이 출력 : {0}",arr.Length);
            //배열의 요소 출력(for, foreach)
            for(int i = 0; i < arr.Length; i++)
            {
                string name = arr[i];
                Console.WriteLine(name);
            }
            Console.WriteLine();

            foreach(string name in arr)
            {
                Console.WriteLine(name);
            }
        }
    }
}

int 배열 연습

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Study00
{
    public class App
    {
        //생성자
        public App()
        {
            //int배열 변수 선언
            int[] arr;
            //int배열 인스턴스 생성 (빈배열)
            arr = new int[5];
            //int배열 인스턴스 요소에 값 할당
            for(int i = 0; i < arr.Length; i++)
            {
                arr[i] = i;
            }

            //배열의 길이 출력
            Console.WriteLine("배열의 길이 출력 : {0}", arr.Length);
            Console.WriteLine();
            //배열의 요소 출력(for, foreach)
             for(int i = 0; i < arr.Length; i++)
            {
                int num = arr[i];
                Console.WriteLine(num);
            }
            foreach(int num in arr)
            {
                Console.WriteLine(num);
            }

        }
    }
}

float 배열 연습

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Study00
{
    public class App
    {
        //생성자
        public App()
        {
            //float배열 변수 선언
            float[] arr;
            //float배열 인스턴스 생성 (빈배열)
            arr = new float[5];
            //float배열 인스턴스 요소에 값 할당
            for(int i = 0; i < arr.Length; i++)
            {
                arr[i] = i+0.5f;
            }

            //배열의 길이 출력
            Console.WriteLine("배열의 길이 출력 : {0}", arr.Length);

            //배열의 요소 출력(for, foreach)
            for (int i = 0; i < arr.Length; i++)
            {
                float num = arr[i];
                Console.WriteLine(num);
            }
            Console.WriteLine();
            foreach (float num in arr)
            {
                Console.WriteLine(num);
            }

        }
    }
}

bool 배열 연습

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Study00
{
    public class App
    {
        //생성자
        public App()
        {
            //bool배열 변수 선언
            bool[] arr;

            //bool배열 인스턴스 생성 (빈배열)
            arr = new bool[4];

            //bool배열 인스턴스 요소에 값 할당
            arr[0] = true;
            arr[1] = false;
            arr[2] = false;
            arr[3] = true;

            //배열의 길이 출력
            Console.WriteLine("배열의 길이 출력 : {0}", arr.Length);

            //배열의 요소 출력(for, foreach)
            for(int i = 0; i < arr.Length; i++)
            {
                bool stat = arr[i];
                Console.WriteLine(stat);
            }
            Console.WriteLine();
            foreach(bool stat in arr)
            {
                Console.WriteLine(stat);
            }
        }
    }
}

Class 배열 연습

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Study00
{
    public class App
    {
        //생성자
        public App()
        {
            //class배열 변수 선언
            Terran[] terran;

            //class배열 인스턴스 생성 (빈배열)
            terran = new Terran[5];

            //class배열 인스턴스 요소에 값 할당
            for(int i = 0; i < terran.Length; i++)
            {
                terran[i] = new Terran();
            }    

            //배열의 길이 출력
            Console.WriteLine("배열의 길이 출력 : {0}", terran.Length);

            //배열의 요소 출력(for, foreach)
            for(int i = 0; i < terran.Length; i++)
            {
                Terran terran1 = terran[i];
                Console.WriteLine(terran1);
            }
            Console.WriteLine();

            foreach(Terran terran1 in terran)
            {
                Console.WriteLine(terran1);
            }
        }
    }
}

enum 배열 연습

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Study00
{
    public class App
    {
        enum eType
        {
            Test1,
            Test2,
            Test3
        }
        //생성자
        public App()
        {
            //enum배열 변수 선언
            eType[] arr;

            //enum배열 인스턴스 생성 (빈배열)
            arr = new eType[3];

            //enum배열 인스턴스 요소에 값 할당
            arr[0] = eType.Test1;
            arr[1] = eType.Test2;
            arr[2] = eType.Test3;

            //배열의 길이 출력
            Console.WriteLine("배열의 길이 출력 : {0}", arr.Length);

            //배열의 요소 출력(for, foreach)
            for(int i = 0; i < arr.Length; i++)
            {
                eType test = arr[i];
                Console.WriteLine(test);
            }
            Console.WriteLine();
            foreach(eType test in arr)
            {
                Console.WriteLine(test);
            }
        }
    }
}

char 배열 연습

 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Study00
{
    public class App
    {

        //생성자
        public App()
        {
            //char배열 변수 선언
            char[] arr;

            //char배열 인스턴스 생성 (빈배열)
            arr = new char[5];

            //char배열 인스턴스 요소에 값 할당
            arr[0] = 'a';
            arr[1] = 'b';
            arr[2] = 'c';
            arr[3] = 'd';
            arr[4] = 'e';

            //배열의 길이 출력
            Console.WriteLine("배열의 길이 출력 : {0}", arr.Length);

            //배열의 요소 출력(for, foreach)
            for(int i = 0; i < arr.Length; i++)
            {
                char test = arr[i];
                Console.WriteLine(test);
            }
            foreach(char test in arr)
            {
                Console.WriteLine(test);
            }
        }
    }
}