protected int GetNum()
{
int i = 1;
try
{
i = 5;
return i;
}
finally
{
i += 1;
}
}
//输出结为: 5 测试于 2006-11-10protected System.Text.StringBuilder GetString()
{
System.Text.StringBuilder str = new System.Text.StringBuilder("a");
try
{
str.Append("b");
return str;
}
finally
{
str.Append("c");
}
}
//输出结果为: abc 测试于 2006-11-10
这段代码可以延伸出两个知识点:
1:try里包含了 return时,执不执行 finally,要执行什么时候执行?
会执行,在return之间执行。
2:值类型与引用类型,在做赋值操作时的区别是什么?
值类型在为同一个变量赋值时,会新开一个存储空间。
引用变量在赋值时,只是对堆进行操作,栈的指针没有变化。
本文深入解析了C#中的try-finally块执行流程,阐述了return语句在try块内执行时finally块的执行时机,并对比了值类型与引用类型在赋值操作上的差异,旨在帮助开发者更好地理解和应用这些关键概念。
1774

被折叠的 条评论
为什么被折叠?



