C# using语法糖图文详解

 更新时间:2021年01月15日 15:14:36   作者:斯 钦  
这篇文章主要给大家介绍了关于C# using语法糖的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

前言

什么是语法糖?

(语法糖就是像糖一样的语法…)

语法糖(Syntactic sugar),又名糖衣语法,最早是由英国计算机科学家彼得·约翰·兰达(Peter J. Landin)发明的。

通俗点来讲就是简化后的语法,但是其效果和原先语法是一样的,只是更方便我们程序员使用而已。

举个日常生活中简单的例子,使用语法糖之前你想表达今天天气很热:“今天气温好热啊!”,用了语法糖后:“天热!”,
但是效果是一样的,都能够给别人传达今天天气很热的信息。

很多语言都有语法糖,C#也不例外。

using语法糖就是C#很多种语法糖中的一种。

using语法糖的格式相当于:

try { 代码片1; } finally { 代码片2; }

正常情况下,在代码片1的地方我们会执行一些逻辑代码,在代码片2的地方我们会相应的释放掉代码片1中对象的资源。

所以我们一般会在操作文件、数据库等的时候用到using语法糖!

所以所以在对象不能够被释放资源的情况下是不能使用using语法糖的!!

那你怎么能知道所使用的对象能不能释放资源?

输入 对象名. 之后,会自动弹出一些提示的方法,如果有Dispose方法,那么就可以进行相应的释放。

我们创建一个类让它继承IDisposable接口(这个类就是正常情况下我们操作文件、数据库等使用的类,在这里我没有使用那些类,所以就新建一个类继承一下IDisposable接口,模拟那些类的使用),在使用之后我们相应的释放这个类的资源。

代码展示:

using System;
using System.IO;

namespace Syntactic_sugar
{
 class Program
 {
  static void Main(string[] args)
  {
   Console.WriteLine("正在运行代码1...");
   func myfunc = new func();
   try
   {
    Console.WriteLine("正在运行代码2...");
   }
   finally
   {
    myfunc.Dispose();
   }
   Console.WriteLine("正在运行代码3...");
  }
 }

 public class func : IDisposable
 {
  public void Dispose()
  {
   Console.WriteLine("释放资源");
  }
 }
}

效果展示:

我们使用using语法糖之后。

代码展示:

using System;
using System.IO;

namespace Syntactic_sugar
{
 class Program
 {
  static void Main(string[] args)
  {
   Console.WriteLine("正在运行代码1...");
   using (var myfunc = new func())
   {
    Console.WriteLine("正在运行代码2...");
   }
   Console.WriteLine("正在运行代码3...");
  }
 }

 public class func : IDisposable
 {
  public void Dispose()
  {
   Console.WriteLine("释放资源");
  }
 }
}

效果展示:

效果是一样的。

总结

到此这篇关于C# using语法糖的文章就介绍到这了,更多相关C# using语法糖内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • C# 从枚举值获取对应的文本描述详解

    C# 从枚举值获取对应的文本描述详解

    这篇文章主要介绍了C# 从枚举值获取对应的文本描述详解的相关资料,需要的朋友可以参考下
    2017-01-01
  • C#实现简单俄罗斯方块

    C#实现简单俄罗斯方块

    这篇文章主要为大家详细介绍了C#实现简单俄罗斯方块,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-03-03
  • 浅析C# Dynamic关键字

    浅析C# Dynamic关键字

    这篇文章主要介绍了C# Dynamic关键字的相关资料,文中讲解非常细致,对大家学习C# Dynamic关键字有所帮助,感兴趣的朋友可以了解下
    2020-08-08
  • C#中List集合使用Max()方法查找到最大值的实例

    C#中List集合使用Max()方法查找到最大值的实例

    这篇文章主要介绍了C#中List集合使用Max()方法查找到最大值的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-12-12
  • c# 线性回归和多项式拟合示例详解

    c# 线性回归和多项式拟合示例详解

    线性回归与多项式拟合是两种常用的回归分析方法,线性回归模型简单,易于计算,但只适用于线性关系的数据,多项式拟合能处理非线性数据,模型更复杂,拟合度更高,但容易产生过拟合问题,计算成本较高,适用场景不同,线性回归适合线性数据,多项式拟合适合非线性数据
    2024-10-10
  • .Net(c#)汉字和Unicode编码互相转换实例

    .Net(c#)汉字和Unicode编码互相转换实例

    下面小编就为大家带来一篇.Net(c#)汉字和Unicode编码互相转换实例。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-02-02
  • C# 关于爬取网站数据遇到csrf-token的分析与解决

    C# 关于爬取网站数据遇到csrf-token的分析与解决

    这篇文章主要介绍了C# 关于爬取网站数据遇到csrf-token的分析与解决,帮助大家更好的理解和学习c#,感兴趣的朋友可以了解下
    2021-01-01
  • C#虚函数用法实例分析

    C#虚函数用法实例分析

    这篇文章主要介绍了C#虚函数用法,实例分析了C#中虚函数的功能与基本使用技巧,需要的朋友可以参考下
    2015-07-07
  • C#实现图片放大功能的按照像素放大图像方法

    C#实现图片放大功能的按照像素放大图像方法

    这篇文章主要介绍了C#实现图片放大功能的按照像素放大图像方法,功能非常实用,需要的朋友可以参考下
    2014-07-07
  • C#创建线程带参数的方法

    C#创建线程带参数的方法

    本文给大家介绍C#创建线程带参数的方法,包括无参数线程的创建,带一个参数线程的创建及带两个及以上参数线程的创建,非常不错,具有参考借鉴价值,感兴趣的朋友一起看下吧
    2016-07-07

最新评论