Is it possible to force the use of “using” for disposable classes?

前端 未结 10 641
轮回少年
轮回少年 2020-12-05 06:49

I need to force the use of \"using\" to dispose a new instance of a class.

public class MyClass : IDisposable
{
   ...
}

using(MyClass obj = new MyClass())          


        
10条回答
  •  予麋鹿
    予麋鹿 (楼主)
    2020-12-05 07:27

    It's ugly, but you could do something like this:

        public sealed class DisposableClass : IDisposable
        {
            private DisposableClass()
            {
    
            }
    
            public void Dispose()
            {
                //Dispose...
            }
    
            public static void DoSomething(Action doSomething)
            {
                using (var disposable = new DisposableClass())
                {
                    doSomething(disposable);
                }
            }
        }
    

提交回复
热议问题