zoukankan      html  css  js  c++  java
  • 一个关于流程控制的问题

    CSDN 帖子链接

    代码
    static class Program
    {
    /// <summary>
    /// 应用程序的主入口点。
    /// </summary>
    [STAThread]
    static void Main()
    {
    Console.WriteLine(Test2());
    // 输出 AA

    TestClass ts
    = Test();

    Console.WriteLine(ts.str);
    // 输出 CC

    Console.ReadLine();
    }

    public static TestClass Test()
    {
    TestClass ts
    = new TestClass();
    try
    {
    ts.str
    = "AA"; //
    return ts; // 在执行return的时候、返回值就已经确定了,在此时要对数据进行拷贝
    // 由于 Ts 是引用类型即是一个指针,数据拷贝直接拷贝的是 内存地址
    // 由于方法到此时还没有执行完毕所以还要继续执行
    }
    catch (Exception ex)
    {
    ts.str
    = "BB";
    Console.WriteLine(ex.Message);
    return ts;
    }
    finally
    {
    ts.str
    = "CC"; // 由于Finally的特殊性:无论是否发生异常都要执行finally语句
    // 该语句会在执行return 语句之后 方法执行完毕前 执行。
    // 由于数据拷贝是在return语句执行是发生的,并且拷贝的是内存地址,
    // 而该语句又是对内存地址所指向的数据进行修改、而不是修改这个内存地址,
    // 所以 此操作影响了外界到的数据、更确切的说是影响了其内存地址中的数据
    }

    }


    public static string Test2()
    {
    string str = "";
    try
    {
    str
    = "AA"; //
    return str; // 在执行return的时候、返回值就已经确定了,在此时要对数据进行拷贝
    // 由于 string 是值类型,数据拷贝直接拷贝的是 数据
    // 由于方法到此时还没有执行完毕所以还要继续执行
    }
    catch (Exception ex)
    {
    str
    = "BB";
    Console.WriteLine(ex.Message);
    return str;
    }
    finally
    {
    str
    = "CC"; // 由于Finally的特殊性:无论是否发生异常都要执行finally语句
    // 该语句会在执行return 语句之后 方法执行完毕前 执行。
    // 由于数据拷贝是在return语句执行是发生的,并且拷贝的是数据,
    // 所以该语句的执行不会影响到返回值
    }
    }
    }


    public class TestClass
    {
    public string str;
    }


    返回导读目录,阅读更多随笔



    分割线,以下为博客签名:

    软件臭虫情未了
    • 编码一分钟
    • 测试十年功


    随笔如有错误或不恰当之处、为希望不误导他人,望大侠们给予批评指正。

  • 相关阅读:
    利用C# + GDI plus模拟杂乱无章的现实场景
    Windows Identity Foundation已包含在.NET 4.5中
    实体框架 6.0:异步、IQueryable操作符和特性改进
    Knotter 0.7.0 发布,交错图案设计工具
    实体框架 5.0:空间数据类型、性能增强、数据库提升
    JFormDesigner 5.2 Beta 发布,Swing设计工具
    获取泛型参数的泛型类型
    Android MapView 申请apiKey
    Android Animation学习笔记
    eclipse 无法启动 JVM terminated. Exit code=1
  • 原文地址:https://www.cnblogs.com/08shiyan/p/1863967.html
Copyright © 2011-2022 走看看