Laravel  
laravel
文档
数据库
架构
入门
php技术
    
Laravelphp
laravel / php / java / vue / mysql / linux / python / javascript / html / css / c++ / c#

c# using()

作者:冷空气来袭   发布日期:2025-04-26   浏览:113

using System;

namespace UsingStatementExample
{
    class Program
    {
        static void Main(string[] args)
        {
            // 使用 using 语句确保资源被正确释放
            using (MyResource myResource = new MyResource())
            {
                myResource.DoSomething();
            }

            Console.WriteLine("Resource has been disposed.");
        }
    }

    // 自定义资源类,实现 IDisposable 接口
    public class MyResource : IDisposable
    {
        private bool disposed = false;

        public void DoSomething()
        {
            Console.WriteLine("Doing something...");
        }

        // 实现 IDisposable 接口
        public void Dispose()
        {
            Dispose(true);
            GC.SuppressFinalize(this);
        }

        protected virtual void Dispose(bool disposing)
        {
            if (!disposed)
            {
                if (disposing)
                {
                    // 释放托管资源
                    Console.WriteLine("Disposing managed resources.");
                }

                // 释放非托管资源
                Console.WriteLine("Disposing unmanaged resources.");

                disposed = true;
            }
        }

        // 析构函数
        ~MyResource()
        {
            Dispose(false);
        }
    }
}

解释说明

  1. using 语句using 语句确保实现了 IDisposable 接口的对象在使用完毕后会被正确释放。它会在代码块结束时自动调用对象的 Dispose 方法。

  2. MyResource:这是一个自定义的资源类,实现了 IDisposable 接口。DoSomething 方法模拟了资源的使用,而 Dispose 方法则负责清理资源。

  3. Dispose 方法Dispose 方法用于释放资源。Dispose(bool disposing) 是一个虚方法,允许派生类覆盖以添加额外的清理逻辑。GC.SuppressFinalize(this) 告诉垃圾回收器不需要再调用析构函数。

  4. 析构函数:析构函数用于在对象被垃圾回收时进行最后的清理工作。它会调用 Dispose(false) 来确保非托管资源被释放。

通过这种方式,using 语句可以确保资源在使用完毕后被及时释放,避免资源泄漏。

上一篇:c#mqtt

下一篇:c# 定义常量

大家都在看

c# 二进制

c# tcp client

c# type.gettype

c# sqlconnection

.net和c#

c#游戏开发

c#网络编程

c# rectangle

c# if else

c# rtsp

Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3

Laravel 中文站