2019년 3월 31일 일요일

using 문,try-finally문

사용예제

using

무슨 일이 있어도 반드시 종료 처리를 호출하고 싶을 때는 using문IDisposable(using System)인터페이스를 사용하면 됌

using문이 끝날 때 객체가 가진 Dispose 메서드를 자동으로 호출해서 파일을 닫기 때문에
Close가 없어도 작동한다.


간단한 Dispose를 구현한 클래스 예제

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System;




public class tttttttt : MonoBehaviour {


    class GoodBye : IDisposable
    {
        public void Dispose()
        {
            Debug.Log("Close");
        }
    }

// Use this for initialization
void Start () {

        using (var gb = new GoodBye())
        {
            Debug.Log("aaaa");
            return;
        }

}
}

결과

aaaa
Close


IDisposable 인터페이스가 좋긴 하다 하지만 클래스 구현하는 낭비를 했음

try-finally 사용하면 훨씬 간단하게 구현 가능

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System;


public class tttttttt : MonoBehaviour {

void Start () {
        try
        {
            Debug.Log("aaaa");
            return;
        }
        finally
        {
            Debug.Log("Close");
        }
}


}

결과

aaaa
Close



댓글 없음:

댓글 쓰기

git rejected error(feat. cherry-pick)

 문제 아무 생각 없이 pull을 받지않고 로컬에서 작업! 커밋, 푸시 진행을 해버렷다. push에선 remote와 다르니 당연히 pull을 진행해라고 하지만 로컬에서 작업한 내용을 백업하지 않고 진행하기에는 부담스럽다(로컬작업 유실 가능성) 해결하려...