c#里using除了引用程序集,例如:
using System;
using System.Collections.Generic;
还有1个重要的用法:
我们都知道system.object里有Finalize()是虚函数,在GC进行垃圾回收的时候用到,一般我们都不用自己显示的清理逻辑,但是只是一般情况下,自然就想到了override Finalize()。
{
protected override Finalize()
{
//do something
}
}
但是c#不允许这样做,很奇怪。我们只能增加析构函数:
class a
{
~a()
{
Console.WriteLine("I am dead!");
}
}
更有一种情况,如果你的类类型是可处置的,也就是支持IDisposable接口时,可以调用Dispose()。
class a : IDisposable
{
public void Dispose()
{
//清楚非托管资源。。。。
// and something else
}
}
当然最好判断下目前类型是否支持IDisposable
。。。。
if (a is IDisposable)
a.Dispose();
在处理实现了IDisposable时我们一般使用结构化的异常处理来保证Dispose()调用:
try
{
//使用a成员
}
finally
{
a.Dispose();
}
显然这样做要把每个可处置的类型包含在try/finally里,不是很让人接受,于是就有了using的另一用途:
using(a mya=new a())
{
//使用mya对象
}
虽然在CIL代码里还是try/finally,但我们的代码编写和阅读更让人接受。
分享到:
相关推荐
在计算机科学中,矩阵运算广泛应用于图像处理、物理学模拟、机器学习等多个领域。 C#中的并行计算主要通过.NET Framework的System.Threading命名空间和System.Threading.Tasks命名空间来实现。Task类是异步并行计算...
随着学习的深入,你将掌握更复杂的概念,如接口、异常处理、文件操作、数据库交互以及图形用户界面(GUI)编程等。C#的强大之处在于它的灵活性和广泛的应用场景,无论是桌面应用、游戏开发还是云计算服务,都能找到...
通过学习和理解这段源码,开发者不仅可以掌握音频处理的基本原理,还能了解到如何在C#环境中有效利用这些原理。这对于开发音频相关的应用程序,如语音识别、音乐分析、噪声消除等,都是极其有价值的。 此外,博客...
C# 9引入了模式匹配、目标类型推断(using var)等新特性,让代码更加简洁和易读。 在实际项目中,理解并运用设计模式是提升代码质量的关键。书中的实例和案例将展示如何在C#中实现常见的设计模式,如工厂模式、...
- **简洁性:** C# 的语法简洁明了,易于学习和使用。 - **性能:** C# 通过CLR提供了高性能的执行环境,支持即时编译(JIT)技术,提高了程序的运行效率。 - **兼容性:** C# 可以与其他 .NET 语言无缝集成,便于...
在IT领域,安全性和数据保护是至关重要的,而加密技术是保障这些方面的重要手段之一。...在C#编程环境中,实现SHA-256加密算法...通过实践和深入学习,您可以更好地理解和应用这些加密机制,为您的IT职业生涯增添亮点。
通过分析和学习这个源码,你可以更深入地理解C#中事件、定时器和时间管理的使用方式,以及如何将它们应用到实际项目中。 总的来说,构建一个C#提醒程序涉及了C#的基础语法、时间处理、事件机制和用户交互等多个方面...
在IT行业中,编程语言C#是一种广泛用于开发桌面应用、Web应用和移动应用的强大工具。在C#中处理文件操作,如重命名照片文件,是常见的任务,尤其在...对于初学者来说,理解并掌握这些基础操作是学习C#编程的重要一步。
通过学习《编程Microsoft Visual C# 2005 - 语言篇》,开发者将能掌握C#的基础知识,为构建Windows桌面应用、Web应用以及更复杂系统打下坚实基础。书中的实例和练习有助于读者理解和实践这些概念。随着C#版本的不断...
《C#7至C#10的开发帮助文档》提供了全面的C#语言学习资源,涵盖了从基础到高级的各种主题。以下是对文档主要内容的详细解释: 1. **入门与简介**: - C#是一种面向对象的编程语言,由微软公司开发,主要用于.NET ...
### C#教程--全面了解C# #### C#语言概述 **C#** 是一种现代、面向对象且类型安全的编程语言,由...通过学习本文档中提到的各种概念和技术,您将能够掌握C#编程的基础知识,并为进一步的学习和发展打下坚实的基础。
在IT领域,驱动管理是操作系统核心功能之一,它负责与硬件设备进行通信,确保系统能够正确识别和使用各种硬件资源。...通过学习和使用这些源代码,开发者可以深入理解驱动管理的原理,提高系统级编程的能力。
通过学习和理解这个示例,开发者可以快速掌握C#中的串口通信技术,并将其应用到自己的项目中。 总之,C#串口-WINFORM的结合使得开发者能构建功能强大的桌面应用,它们可以与各种串口设备进行交互,如传感器、打印机...
本课件旨在为初学者提供一个通俗易懂的C#学习路径,帮助他们快速入门并掌握C#的基础知识。 1. **C#简介** C#(读作"C sharp")是2000年代初推出的一种强类型、面向对象的语言,设计初衷是为了简化.NET框架的应用...
它提供了直观的语法结构,易于理解和学习。面向对象编程是C#的另一个重要特征,支持类、接口、封装、继承和多态等概念。类型安全是C#的重要特性,它能够防止程序运行时出现意外的数据类型错误。版本可控性意味着C#...
而压缩包文件列表中提到的"C#413-非矩形窗体"可能是包含整个项目或源代码的文件,供学习者参考和实践。 总的来说,实现非矩形窗体需要对C#的Windows Forms和GDI+有深入理解,包括自定义绘图、消息处理以及图形对象...
在IT领域,C#是一种广泛使用的面向对象的编程语言,由微软公司开发并应用于Windows平台。本主题聚焦于"C#358-运行应用程序",这可能是指一...在实际学习中,通过实践和分析提供的源代码,可以深入理解这些概念和机制。
在本文中,我们将深入探讨与"C#381-显示器控制源代码"相关的知识点,主要集中在C#编程语言如何操纵显示器设置,以及可能涉及到的技术和方法。显示器控制通常包括调整屏幕亮度、分辨率、颜色设置等,这些功能在现代...
学习C#,你需要了解以下几个关键知识点: 1. **基础语法**:包括变量、数据类型(如整型、浮点型、字符串、布尔型等)、运算符(算术、比较、逻辑等)、流程控制(如条件语句、循环语句)。 2. **面向对象编程**:...
对于初学者来说,创建一个计算器是学习C#基础知识的好方法,因为它涉及到变量、运算符、控制流程以及用户交互等核心概念。 首先,我们需要了解C#的基本语法。在C#中,每个程序都始于`main`函数,这是程序执行的起点...