07
01

1)

class ParamValue
    {
        public void Increase(out int n)
        {
            //Console.WriteLine(n);
            n = 11;
        }

        static void Main(string[] args)
        {
            int i = 6;
            ParamValue pv = new ParamValue();
            pv.Increase(out i);
            Console.WriteLine("호출후 값 : {0}", i);
        }
    }

예제 실행 화면

 

2) params

C# params 규칙
1. params 키워드는 타입 왼쪽에 기입
2. 반드시 1차원 배열로 선언

 

public class VariableLength
{
	public int VarMethod(params int[] arr)
	{
		int sum = 0;
		//for(int i = 0; i< arr.Length; i++)
		//{
		//    sum = sum + arr[i];
		//}
		foreach (int n in arr)
		{
			sum = sum + n;
		}
		return sum;
	}
	public static void Main(string[] args)
	{
		int result;
		VariableLength vl = new VariableLength();
		result = vl.VarMethod(10, 20);
		Console.WriteLine(result);
		result = vl.VarMethod(1, 2, 3, 4);
		Console.WriteLine(result);
	}
}

 

예제 실행 화면

 

public class ParamValue
{
	public static void VarMethod(params object[] arr)
	{
		Console.WriteLine("[가변 인자 개수] : " + arr.Length);
		Console.Write("[인자 전체 ] : ");
		foreach(object one in arr)
		{
			Console.Write(one + " ");
		}
		Console.WriteLine();

		Console.Write("[문자열 타입] : ");
		for(int i = 0; i < arr.Length; ++i)
		{
			Type t = arr[i].GetType();
			if(t.Equals(typeof(System.String)))
			{
				Console.Write(arr[i] + " ");
			}
		}
		Console.WriteLine();

		Console.Write("[정수 타입] : ");
		foreach(object one in arr)
		{
			Type t = one.GetType();
			if(t.Equals(typeof(System.Int32)))
			{
				Console.Write(one + " ");
			}
		}
		Console.WriteLine();
        
		Console.Write("[실수 타입] : ");
		foreach (object one in arr)
		{
			Type t = one.GetType();
			if (t.Equals(typeof(System.Single)) || t.Equals(typeof(System.Double)))
			{
				Console.Write(one.ToString() + " ");
			}
		}
		Console.WriteLine();
	}

	static void Main(string[] args)
	{
		VarMethod(1000, 2000, "3000", "헬로", 3.1, 3.2f);
	}
}

 

예제 실행 화면

 

cf. 예약어

 

3) 메서드 오버로딩

static int Add(int iNum1, int iNum2)
{
	int iNum3 = iNum1 + iNum2;

	return iNum3;
}

static void Main(string[] args)
{
	int Num1 = 3;
	int Num2 = 4;
	int Num3 = Num1 + Num2;
	Console.WriteLine($"{Num1} + {Num2} = {Num3}");

	int iNum4 = Add(5, 6);
	Console.WriteLine($"{5} + {6} = {iNum4}");
}

 

예제 실행 화면

 

static double Add(double Num1, double Num2)
{
	double Num3 = Num1 + Num2;
	return Num3;
}
static float Add(float Num1, float Num2)
{
	float Num3 = Num1 + Num2;
	return Num3;
}
static int Add(int iNum1, int iNum2)
{
	int iNum3 = iNum1 + iNum2;
	return iNum3;
}
static double AddDouble(double Num1, double Num2)
{
	double Num3 = Num1 + Num2;
	return Num3;
}
static float AddFloat(float Num1, float Num2)
{
	float Num3 = Num1 + Num2;
	return Num3;
}
static int AddInt(int iNum1, int iNum2)
{
	int iNum3 = iNum1 + iNum2;
	return iNum3;
}
static void Main(string[] args)
{
	int Num1 = 3;
	int Num2 = 4;
	int Num3 = Num1 + Num2;
	Console.WriteLine($"{Num1} + {Num2} = {Num3}");

	int iNum4 = AddInt(5, 6);
	Console.WriteLine($"{5} + {6} = {iNum4}");
	float fNum4 = AddFloat(5.1f, 6.1f);
	Console.WriteLine($"{5.1} + {6.1} = {fNum4}");
	double dNum4 = AddDouble(5.1, 6.1);
	Console.WriteLine($"{5.1} + {6.1} = {dNum4}");
	Console.WriteLine($"{5} + {6} = {Add(5, 6)}");
}

 

예제 실행 화면

 

4) 배열

Console.WriteLine("행의 갯수를 입력하세요");
string s1 = Console.ReadLine();
Console.WriteLine("열의 갯수를 입력하세요");
string s2 = Console.ReadLine();

int rows = int.Parse(s1);
int cols = int.Parse(s2);

int[,] myArray = new int[rows, cols];
Console.WriteLine(rows + "*" + cols + "배열이 생성되었습니다.");

 

예제 실행 화면

 

int[] Array1 = new int[4];
int[,] Array2 = new int[2, 3];
int[,,] Array3 = new int[2, 4, 3];

Console.WriteLine("Array1의 차원 : " + Array1.Rank);
Console.WriteLine("Array2의 차원 : " + Array2.Rank);
Console.WriteLine("Array3의 차원 : " + Array3.Rank);

 

예제 실행 화면

 

int[] Array1 = new int[4];
int[,] Array2 = new int[2, 3];
int[,,] Array3 = new int[2, 4, 3];

Console.WriteLine("Array1의 크기 : " + Array1.Length);
Console.WriteLine("Array2의 크기 : " + Array2.Length);
Console.WriteLine("Array3의 크기 : " + Array3.Length);

 

예제 실행 화면

 

class ArraySort
{
	static void Main(string[] args)
	{
		int i = 0;
		int[] SortArray = new int[5] { 15, 32, 11, 20, 41 };

		Console.WriteLine("현재배열 출력 : ");
		for (i = 0; i < SortArray.Length; i++)
		{
			Console.WriteLine(SortArray[i]);
		}

		System.Array.Sort(SortArray);

		Console.WriteLine("정렬된 배열 출력 : ");
		for(i = 0; i<SortArray.Length;i++)
		{
			Console.WriteLine(SortArray[i]);
		}
	}
}

 

예제 실행 화면

 

class ArrayClear1
{
	static void Main(string[] args)
	{
		int[] ClearArray = { 5, 4, 2, 6, 7, 1 };

		Console.WriteLine("********************클리어 전*********************");
		foreach(int iNum in ClearArray)
		{
			Console.WriteLine(iNum);
		}

		Array.Clear(ClearArray, 0, ClearArray.Length);
		Console.WriteLine("********************클리어 후*********************");
		foreach(int iNum in ClearArray)
		{
			Console.WriteLine(iNum);
		}
	}
}

 

예제 실행 화면

 

class ArrayClear2
{
	static void Main(string[] args)
	{
		int i = 0;
		int[] ClearArray = { 5, 4, 2, 6, 7, 1 };
		Array.Clear(ClearArray, 1, 2);

		for(i = 0; i < ClearArray.Length; i++)
		{
			Console.WriteLine(ClearArray[i]);
		}
	}
}

 

예제 실행 화면

 

class ArrayClone
{
	static void Main(string[] args)
	{
		int i = 0;
		int[] Original = { 5, 4, 2, 6, 7, 1 };
		int[] Clone = (int[])Original.Clone();

		for (i = 0; i < Clone.Length; i++)
		{
			Console.WriteLine(Clone[i]);
		}

		Original[3] = 20;
		Console.WriteLine("복제배열[3] : " + Clone[3]);
	}
}

 

예제 실행 화면

 

class test
{
	static void Main(string[] args)
	{
		int i = 0;
		int[] Original = { 5, 4, 2, 6, 7, 1 };
		int[] Clone = (int[])Original.Clone();

		Console.Write("Original : ");
		foreach(int one in Original)
		{
			Console.Write(one + " ");
		}
		Console.WriteLine();

		Console.Write("Clone : ");
		foreach (int one in Clone)
		{
			Console.Write(one + " ");
		}
		Console.WriteLine();

		Console.WriteLine("************************");
		Array.Sort(Clone);

		Console.Write("Original : ");
		foreach (int one in Original)
		{
			Console.Write(one + " ");
		}
		Console.WriteLine();

		Console.Write("Clone : ");
		foreach (int one in Clone)
		{
			Console.Write(one + " ");
		}
		Console.WriteLine();
	}
}

 

예제 실행 화면

 

'스마트팩토리 > C#' 카테고리의 다른 글

19. 게임 제작, 복습  (0) 2020.07.14
18. 복습  (0) 2020.07.13
16. 복습  (0) 2020.06.30
15. 복습  (0) 2020.06.29
14. 복습  (0) 2020.06.26
COMMENT