c#字符串值类型与引用类型比较示例

 更新时间:2014年03月04日 09:48:47   作者:  
这篇文章主要介绍了c#字符串值类型与引用类型比较示例,需要的朋友可以参考下

复制代码 代码如下:

classProgram
{
    staticvoid Main()

    {
        int a = 9;    //给变量a赋值为9
        int b = a;   //将a的副本给变量b
        b = 10;
        Console.WriteLine(string.Format("a={0},b={1}", a, b));
        Person ZS = newPerson();       //张三
        ZS.Age = 99;           //张三的年龄是99
        Person SM = ZS;        //三毛等于张三,即张三和三毛就是同一个人
        SM.Age = 100;      //三毛年龄变成100,张三也就变成了100
       Console.WriteLine(string.Format("A={0},B={1}", ZS.Age, SM.Age));
        Console.ReadKey();

    }

}
classPerson
{
    publicint Age { get; set; }
}

相同的结构,不同的结果。


证明string是引用类型

复制代码 代码如下:

using System;

classProgram
{
    staticvoid Main()
    {
        int n = 99;
        Console.WriteLine("Before:n={0}", n.GetHashCode());
        //此时获取到的哈希码值就是n的变量值
        GetInt(n);
        string s = "Hello";
        Console.WriteLine("Before:s={0}", s.GetHashCode());
        GetString(s);
        Console.ReadKey();
    }
    staticint GetInt(int n)
    {
        Console.WriteLine("After:m={0}", n.GetHashCode());
        //传过来的是变量值,说明这是值传递
        return n;
    }
    staticstring GetString(string s)
    {
        Console.WriteLine("After:s={0}", s.GetHashCode());
        //传过来的是地址而不"Hello",说明这时引用传递
        return s;
    }
}

相关文章

  • 一文搞懂C#实现读写文本文件中的数据

    一文搞懂C#实现读写文本文件中的数据

    这篇文章重点给大家介绍C#实现读写文本文件中的数据的一些知识,读取.txt文件数据的实例代码及写入读取过程完整代码,感兴趣的朋友跟随小编一起看看吧
    2021-06-06
  • C#连接到sql server2008数据库的实例代码

    C#连接到sql server2008数据库的实例代码

    这篇文章主要介绍了C#连接到sql server2008数据库的实例代码,需要的朋友可以参考下
    2017-09-09
  • C#实现简易计算器功能(附源码)

    C#实现简易计算器功能(附源码)

    这篇文章主要为大家详细介绍了C#实现简易计算器,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-07-07
  • C#解析char型指针所指向的内容(实例解析)

    C#解析char型指针所指向的内容(实例解析)

    在c++代码中定义了一个功能函数,这个功能函数会将计算的结果写入一个字符串型的数组中output,然后c#会调用c++导出的dll中的接口函数,然后获取这个output并解析成string类型,本文通过实例解析C# char型指针所指向的内容,感兴趣的朋友一起看看吧
    2024-03-03
  • c#根据文件大小显示文件复制进度条实例

    c#根据文件大小显示文件复制进度条实例

    这篇文章主要介绍了c#根据文件大小显示文件复制进度条实例,有需要的朋友可以参考一下
    2013-12-12
  • C#中is与As运算符号的使用详解

    C#中is与As运算符号的使用详解

    本篇文章是对C#中is与As运算符号的使用进行了详细的分析介绍,需要的朋友参考下
    2013-06-06
  • selenium.chrome写扩展拦截或转发请求功能

    selenium.chrome写扩展拦截或转发请求功能

    Selenium WebDriver 是一组开源 API,用于自动测试 Web 应用程序,利用它可以通过代码来控制chrome浏览器,今天通过本文给大家介绍selenium chrome写扩展拦截或转发请求功能,感兴趣的朋友一起看看吧
    2022-07-07
  • .NET实现定时发送邮件代码(两种方式)

    .NET实现定时发送邮件代码(两种方式)

    经常发邮件的朋友都知道,邮箱有个特殊功能,可以设定邮件发送时间,定时发送,这个功能是怎么实现的呢?接下来,小编给大家分享.NET实现定时发送邮件的代码,有需要的朋友可以参考下
    2015-08-08
  • 如何在Unity中检测死循环和卡死

    如何在Unity中检测死循环和卡死

    这篇文章主要介绍了在Unity中检测死循环和卡死的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-08-08
  • C#中如何生成安装包

    C#中如何生成安装包

    这篇文章主要介绍了C#中如何生成安装包问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-01-01

最新评论