• C# 基础


    ①结构和类非常的相似,例子<<C#入门经典>>

    代码
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;

    namespace Ch09Ex03
    {

    class MyClass
    {
    public int val;
    }

    struct myStruct
    {
    public int val;
    }
    class Program
    {
    static void Main(string[] args)
    {
    MyClass objectA
    = new MyClass();
    MyClass objectB
    = objectA;
    objectA.val
    = 10;
    objectB.val
    = 20;
    myStruct structA
    = new myStruct();
    myStruct structB
    = structA;
    structA.val
    = 30;
    structB.val
    = 40;

    Console.WriteLine(
    "objectA.val={0}",objectA.val);
    Console.WriteLine(
    "objectB.val={0}",objectB.val);
    Console.WriteLine(
    "structA.val={0}",structA.val);
    Console.WriteLine(
    "structB.val={0}",structB.val);
    Console.ReadKey();
    }
    }
    }

    示例的说明

     这个应用程序包含俩个类型定义.一个是结构myStruct的定义.他有一个公共的int字段val,另一个是类的MyClass的定义,他包含一个相同的字段.接着对这两种类的实例执行相同的操作;

    结果不同.同样都是给val字段赋一个值.

    结果:

          对象是引用类型.在把对象赋给变量时,实际上是把带有一个指针的变量赋给了该指针所指向的对象.在实际代码中,指针式内存中的一个地址.在这种情况下,地址是内存中该对象所在的位置.在用下面的代码把第一个对象引用赋给类型为MyClass的第二个变量时,实际上是复制了这个地址.

    MyClass objectB=objectA;

    这样两个变量就包含同一个对象的指针.

          结构是值类型.其变量并不是半酣结构的指针.而是包含结构本身.在用下面的代码把第一个结构赋给类型为myStruct的第二个变量时,实际上是把第一个结构的所在信息复制到另一个结构中.

    myStruct structB=structA;

  • 相关阅读:
    zoj-3433-Gu Jian Qi Tan
    优先队列详解(转载)
    HDU-3661-Assignments
    hdu-1052-Tian Ji -- The Horse Racing(经典)
    POJ-1456-Supermarket
    UVA-11292Dragon of Loowater
    UVA-11729-Commando War
    循环日程表 问题(递归分治)
    八数码问题
    POJ-3273 Monthly Expense (最大值最小化问题)
  • 原文地址:https://www.cnblogs.com/0909/p/1814856.html
Copyright © 2020-2023  润新知