/// <summary> /// 작성자 입장에서는 /// Out 키워드는 함수 내에서 반드시 할당을 해야 컴파일 에러가 안뜸 /// /// 사용자 입장에서는 /// 이 함수를 호출하는 순간 무조건 할당이 보장되있음 /// </summary> void 체력을얻고파_근데_클래스정의하기는_귀찮다(out string CharacterName, out int iHPCurrent) { HelathInfo pHP = 체력을얻고파(); CharacterName = pHP.CharacterName; iHPCurrent = pHP.iHPCurrent; }
public void 튜플의_사용예시() { // 원하는 값을 리턴 얻으려면? // 1. Class를 정의해서 Class에 담아 원하는 값 얻기 HelathInfo pHealth = 체력을얻고파(); // 2. Out을 이용해서 원하는 값 얻기 int iHP; string strCharacterName; 체력을얻고파_근데_클래스정의하기는_귀찮다(out strCharacterName, out iHP); Assert.AreEqual(pHealth.CharacterName, strCharacterName); Assert.AreEqual(pHealth.iHPCurrent, iHP); int iHP_Origin = iHP; 체력을_변경해보자(ref iHP, 10); Assert.AreEqual(iHP, iHP_Origin + 10); // 암튼.. 잘안씀.. (유지보수 측면때문에) // 3-1. Tuple을 이용해서 원하는 값 얻기 var pHealth_Tuple = 체력을얻고파_튜플버전(); Assert.AreEqual(pHealth_Tuple.strCharacterName_Tuple, strCharacterName); Assert.AreEqual(pHealth_Tuple.iHPCurrent_Tuple, iHP_Origin); // 3-2. Tuple을 이용해서 원하는 값 얻기 var pHealth_Tuple_UnFriendly = 체력을얻고파_튜플버전_불친절버전(); Assert.AreEqual(pHealth_Tuple_UnFriendly.Item1, strCharacterName); Assert.AreEqual(pHealth_Tuple_UnFriendly.Item2, iHP_Origin); }