关闭

C#之方法传递结构和类之间的区别学习案例

标签: C#方法传递结构体方法传递类
348人阅读 评论(0) 收藏 举报
分类:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace struct_test
{
    class Program
    {
        class theClass
        {
            public string willIChange;
        }
        //theStruct结构声明
        struct theStruct
        {
            public string willIChange;
        }
        class TestClass_Struct
        {
            static void ClassTaker(theClass c)
            {
                c.willIChange = "旧金山";
            }
            static void StructTaker(theStruct s)
            {
                s.willIChange = "纽约";
            }
            static void Main()
            {
                theClass testClass = new theClass();   //实例化一个类
                theStruct testStruct = new theStruct();//实例化一个结构
                testClass.willIChange = "北京";          //赋值
                testStruct.willIChange = "上海";
                Console.WriteLine("传递类实例之前的内容等于={0}",testClass.willIChange);
                Console.WriteLine("传递结构实例之前的内容等于={0}",testStruct.willIChange);
                Console.WriteLine();
                ClassTaker(testClass);
                StructTaker(testStruct);
                Console.WriteLine("传递类实例之后内容等于={0}",testClass.willIChange);
                Console.WriteLine("传递结构实例之后内容等于={0}",testClass.willIChange);
                //本实例的输出表明,当向ClassTaker方法传递类实例是,只更改类字段的值。但是想StructTaker方法
                //传递结构实例并不更改结构字段。这是因为向StructTaker方法传递的是结构的副本,而向ClassTaker
                //方法传递的是对类的引用。
            }
        }
    }
}

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:79824次
    • 积分:2412
    • 等级:
    • 排名:第16110名
    • 原创:147篇
    • 转载:108篇
    • 译文:0篇
    • 评论:19条
    最新评论