19. c# -- 结构类型,引用类型

结构类型:值类型,而类是引用类型

结构定义:

  • 结构的定义方式与类非常类似,但结构是值类型,而类是引用类型;
  • 对象是引用类型,在把对象赋给变量时,就把一个指针的变量赋给了该指针所指向的对象,改变其中的一个值,值也改变;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication1
{
    class Program
    {
        class MyClass
        {
            public int val;
        }

        struct MyStruct
        {
            public int val;
        }

        static void Main(string [] args)
        {
            MyClass objectA = new MyClass();
            MyClass objectB = objectA;
            objectA.val = 100;
            objectB.val = 200;
            MyStruct StructA = new MyStruct();
            MyStruct StructB = StructA;
            StructA.val = 100;
            StructB.val = 200;
            Console.WriteLine("object A = {0}",objectA.val);
            Console.WriteLine("object B = {0}",objectB.val);
            Console.WriteLine("Struct A = {0}",StructA.val);
            Console.WriteLine("Struct B = {0}", StructB.val);
            Console.ReadLine();
        }
    }
}

结果:

object A =200
object B =200
Struct A =100
Struct B =200

时间: 2024-10-11 06:31:27

19. c# -- 结构类型,引用类型的相关文章

《Go语言实战》Go 类型:基本类型、引用类型、结构类型、自定义类型

Go 语言是一种静态类型的编程语言,所以在编译器进行编译的时候,就要知道每个值的类型,这样编译器就知道要为这个值分配多少内存,并且知道这段分配的内存表示什么. 提前知道值的类型的好处有很多,比如编译器可以合理的使用这些值,可以进一步优化代码,提高执行的效率,减少 bug 等等. 基本类型 基本类型是 Go 语言自带的类型,比如 数值.浮点.字符串.布尔.数组 及 错误 类型,他们本质上是原始类型,也就是不可改变的,所以对他们进行操作,一般都会返回一个新创建的值,所以把这些值传递给函数时,其实传递

C 开发学习 - 结构类型(枚举/结构/类型定义)

一.枚举 定义:枚举是 一种用户定义的数据类型,它用的关键字 enum 枚举类型名字通常并不真的使用,要用的是在大括号里地名字,因为它们就是常量符合,它们的类型是int,值则依次从0到n. enum colors {red, yellow, green} 语法:enum 枚举类型名称{名字0m, ..., 名字n}; 案例一:自动计数的枚举 // // main.c // enum // // Created by liuxinming on 15/4/26. // Copyright (c)

值类型&引用类型,装箱&拆箱

值类型:声明一个值类型变量,会在栈上分配一个空间,空间里存储的就是变量的值引用类型:声明一个引用类型变量,会在栈中分配一个空间,存储一个引用,这个引用指向了一个托管堆. 值类型:struct,枚举,数值类型,bool类型引用类型:数组,类,接口,委托(delegate),Object,string 可以看下下面的例子 public class Person { public string Name { get; set; } public int Age { get; set; } } publ

[C语言]进阶|结构类型: 枚举, 结构, 类型定义

--------------------------------------------------------------------- 枚举: // main.c #include <stdio.h> const int red = 0; const int yellow = 1; const int green = 2; int main(int argc, const char * argv[]) { /* 常量符号化:用符号而不是具体的数字来表示程序中的数字; 这样看到符号才能知道背

30天C#基础巩固-----值类型/引用类型,泛型,空合并操作符(??),匿名方法

一:值类型/引用类型的区别      值类型主要包括简单类型,枚举类型,和结构体类型等,值类型的实例通常被分配在线程堆栈上面变量保存的内容是实例数据本身.引用类型被分配在托管堆上,变量保存的是地址.引用类型主要包括类类型,接口类型,委托类型和字符串类型等. 关于参数传递,这里有四种:        值类型参数的按值传递:        引用类型参数按值传递: 关于string引用类型参数按值传递的特殊情况:虽然string类型也是引用类型,然而在按值传递时,传递的实参却不会因方法中形参的改变而被

【C语言】用定义结构类型的方法,编写程序建立一个具有学生学号、姓名、总分和联系电话的记录文件。编写程序从键盘上输入学号可以查到此人的其他信息。

1.用定义结构类型的方法,编写程序建立一个具有学生学号.姓名.总分和联系电话的记录文件. 2.编写程序从键盘上输入学号可以查到此人的其他信息. 第一部分代码(向文件中添加数据) 1 #include <stdio.h> 2 #include <stdlib.h> 3 #define N 5 4 struct student 5 { 6 int num; 7 char name[10]; 8 float score; 9 char tel[20]; 10 }stu[N]; 11 in

利用结构类型的相关知识计算两点之间的距离

#include<stdio.h>#include<stdlib.h>#include<math.h> struct point{ /*点的结构类型名*/ float x; /*横坐标*/ float y; /*纵坐标*/ }; struct point readPoint(); /*函数原型声明*/float distance(struct point p1,struct point p2);/*主函数*/ int main(void){ struct point a

Scala 深入浅出实战经典 第53讲:Scala中结构类型实战详解

王家林亲授<DT大数据梦工厂>大数据实战视频 Scala 深入浅出实战经典(1-64讲)完整视频.PPT.代码下载:百度云盘:http://pan.baidu.com/s/1c0noOt6 腾讯微云:http://url.cn/TnGbdC 360云盘:http://yunpan.cn/cQ4c2UALDjSKy 访问密码 45e2土豆:http://www.tudou.com/programs/view/pR_4sY0cJLs/优酷:http://v.youku.com/v_show/id_

一页中总结结构类型的设计模式

机构类型设计模式目录,之前的创建类型的设计模式介绍看这里 适配器模式 桥接模式 组合模式 装饰模式 外观模式 享元模式 代理模式 1. 适配器模式(将某个类的接口转换成客户端期望的另一个接口表示.适配器模式可以消除由于接口不匹配所造成的类兼容性问题.)引用院子Learning hard的示例,比较经典的插头例子 using System; /// 这里以插座和插头的例子来诠释适配器模式 /// 现在我们买的电器插头是2个孔,但是我们买的插座只有3个孔的 /// 这是我们想把电器插在插座上的话就需