为什么[C]在当前市场中的需求如此旺盛?

2026-04-29 04:462阅读0评论SEO教程
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计530个文字,预计阅读时间需要3分钟。

为什么[C]在当前市场中的需求如此旺盛?

原创新闻:我国科学家在量子计算领域取得重大突破

改写后:我国量子计算研究获重大进展

[C#][Tips]再探using陈述式


上一篇我大概介绍了什么是using statement,简单可以说using statement就是try finally的简洁语法,

但我有些朋友却认为using statement会吃掉所有例外状况(try catch finally语法),

而之前在MSDN论坛上也有看到某些网友也支持这样的说法,

所以这篇我就来验证using statement到底是否有含catch。

我利用MSDN范列编译成功后,比对IL中介码来看看using statement是否真的包含catch。

Font font2 = new Font("Arial", 10.0f);

using( font2 )

{

bool isbold = font2.Bold;

}

IL

Font font2 = new Font( "Arial", 10.0f );

try

{

bool isbold = font2.Bold;

}

finally

{

if( font2 != null )

font2.Dispose();

}

?

IL?

可以看到两种写法的IL中介码几乎一模一样,而且不包含catch。

为什么[C]在当前市场中的需求如此旺盛?

来看看try catch finally后的IL中介码

Font font2 = new Font( "Arial", 10.0f );

try

{

bool isbold = font2.Bold;

}

catch( Exception ex )

{

}

finally

{

if( font2 != null )

font2.Dispose();

}

?

IL

透过IL中介码我们可以知道using statement真的不包含catch,所以千万不要在误会使用using stement会吃掉所有例外状况。

上一篇我也提到如果要捕抓例外状况须自行加入try catch,我们也来看看C#编译器会输出什么样的程序。

Font font2 = new Font( "Arial", 10.0f );

using( font2 )

{

try

{

bool isbold = font2.Bold;

}

catch( Exception ex )

{

}

}

?

可以看到使用using statement+try catch后,就如同使用try catch finally。

再补充using statement注意事项:

1.由于会隐含执行Dispose,所以不需要再手动处理,如果自己在手动执行Close()、Dispose(),

? 只会让CLR再度浪费资源进而影响程序性能。

参考

SQL Server Connection Pooling (ADO.NET)

原文:大专栏 [C#][Tips]再探using陈述式

本文共计530个文字,预计阅读时间需要3分钟。

为什么[C]在当前市场中的需求如此旺盛?

原创新闻:我国科学家在量子计算领域取得重大突破

改写后:我国量子计算研究获重大进展

[C#][Tips]再探using陈述式


上一篇我大概介绍了什么是using statement,简单可以说using statement就是try finally的简洁语法,

但我有些朋友却认为using statement会吃掉所有例外状况(try catch finally语法),

而之前在MSDN论坛上也有看到某些网友也支持这样的说法,

所以这篇我就来验证using statement到底是否有含catch。

我利用MSDN范列编译成功后,比对IL中介码来看看using statement是否真的包含catch。

Font font2 = new Font("Arial", 10.0f);

using( font2 )

{

bool isbold = font2.Bold;

}

IL

Font font2 = new Font( "Arial", 10.0f );

try

{

bool isbold = font2.Bold;

}

finally

{

if( font2 != null )

font2.Dispose();

}

?

IL?

可以看到两种写法的IL中介码几乎一模一样,而且不包含catch。

为什么[C]在当前市场中的需求如此旺盛?

来看看try catch finally后的IL中介码

Font font2 = new Font( "Arial", 10.0f );

try

{

bool isbold = font2.Bold;

}

catch( Exception ex )

{

}

finally

{

if( font2 != null )

font2.Dispose();

}

?

IL

透过IL中介码我们可以知道using statement真的不包含catch,所以千万不要在误会使用using stement会吃掉所有例外状况。

上一篇我也提到如果要捕抓例外状况须自行加入try catch,我们也来看看C#编译器会输出什么样的程序。

Font font2 = new Font( "Arial", 10.0f );

using( font2 )

{

try

{

bool isbold = font2.Bold;

}

catch( Exception ex )

{

}

}

?

可以看到使用using statement+try catch后,就如同使用try catch finally。

再补充using statement注意事项:

1.由于会隐含执行Dispose,所以不需要再手动处理,如果自己在手动执行Close()、Dispose(),

? 只会让CLR再度浪费资源进而影响程序性能。

参考

SQL Server Connection Pooling (ADO.NET)

原文:大专栏 [C#][Tips]再探using陈述式