.Net高级技术——结构体
结构体
结构体和类的区别:结构体是值类型,类是引用类型
结构体非常类似于类,但是值类型(拷贝传递),不能被继承
Int32、DateTime等都是结构体,从ValueType继承,值类型。
结构体测试程序:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Drawing;
namespace 结构体
{
class Program
{
static void Main(string[] args)
{
Person p1 = new Person();
Person p2 = p1;
p1.Age = ;
p1.Name = "孤傲苍狼";
Console.WriteLine("p1.Name={0},p1.Age={1}", p1.Name, p1.Age);
Console.WriteLine("p2.Name={0},p2.Age={1}", p2.Name, p2.Age);
p2.Name = "白虎神皇";
Console.WriteLine("p1.Name={0},p1.Age={1}", p1.Name, p1.Age);
Console.WriteLine("p2.Name={0},p2.Age={1}", p2.Name, p2.Age);
Console.WriteLine(object.ReferenceEquals(p1, p2));
Console.WriteLine(object.Equals(p1,p2));
Console.WriteLine(p1 == p2);
MyPoint point1 = new MyPoint();
MyPoint point2 = point1;
Console.WriteLine(object.ReferenceEquals(point1, point2));//结构体是值类型,拷贝一份,因此point1和point2是两个不同的对象
point1.X = ;
point1.Y = ;
point1.SayHello();
Console.WriteLine("point1.X={0},point1.Y={1}", point1.X, point1.Y);
Console.WriteLine("point2.X={0},point2.Y={1}", point2.X, point2.Y);
Console.ReadKey();
}
}
//结构体非常类似于类,但是值类型(拷贝传递),不能被继承
//Int32、DateTime等都是结构体,从ValueType继承,值类型。
/// <summary>
/// 定义结构体
/// </summary>
struct MyPoint
{
/// <summary>
/// 定义结构体的属性
/// </summary>
public int X { get; set; }
/// <summary>
/// 定义结构体的属性
/// </summary>
public int Y { get; set; }
/// <summary>
/// 定义结构体的方法
/// </summary>
public void SayHello()
{
Console.WriteLine("HelloWorld!");
}
}
/// <summary>
/// 定义类
/// </summary>
class Person
{
public int Age { get; set; }
public string Name { get; set; }
}
}
程序运行结果:

.Net高级技术——结构体的更多相关文章
- 第四篇 .NET高级技术之结构体及值类型引用类型
结构体 在平时的开发中很少自己去写结构体,他是一种值类型的数据.对于结构,不像类那样存在继承,一个结构体不能从另一个结构或类继承.但是结构体从基类Object继承. 语法: //struct是定义结构 ...
- 被遗忘的C结构体打包技术
今天看到的一篇文章,记录一下:https://github.com/ludx/The-Lost-Art-of-C-Structure-Packing 失传的C结构体打包技艺 作者:Eric S. Ra ...
- [译]基于GPU的体渲染高级技术之raycasting算法
[译]基于GPU的体渲染高级技术之raycasting算法 PS:我决定翻译一下<Advanced Illumination Techniques for GPU-Based Volume Ra ...
- C语言语法笔记 – 高级用法 指针数组 指针的指针 二维数组指针 结构体指针 链表 | IT宅.com
原文:C语言语法笔记 – 高级用法 指针数组 指针的指针 二维数组指针 结构体指针 链表 | IT宅.com C语言语法笔记 – 高级用法 指针数组 指针的指针 二维数组指针 结构体指针 链表 | I ...
- C语言--- 高级指针2(结构体指针,数组作为函数参数)
一.结构体指针 1. 什么是结构体指针?指向结构体变量的指针 结构体: typedef struct stu{ char name[ ...
- 第20章 DLL高级技术(2)
20.3 延迟载入DLL 20.3.1延迟载入的目的 (1)如果应用程序使用了多个DLL,那么它的初始化可能比慢,因为加载程序要将所有必需的DLL映射到进程的地址空间.→利用延迟加载可将载入过程延伸到 ...
- 失落的C语言结构体封装艺术
Eric S. Raymond <esr@thyrsus.com> 目录 1. 谁该阅读这篇文章 2. 我为什么写这篇文章 3.对齐要求 4.填充 5.结构体对齐及填充 6.结构体重排序 ...
- (转)失落的C语言结构体封装艺术
目录1. 谁该阅读这篇文章 2. 我为什么写这篇文章 3.对齐要求 4.填充 5.结构体对齐及填充 6.结构体重排序 7.难以处理的标量的情况 8.可读性和缓存局部性 9.其他封装的技术 10.工具 ...
- C与C++结构体的区别
笔者介绍:姜雪伟,IT公司技术合伙人,IT高级讲师,CSDN社区专家,特邀编辑,畅销书作者,已出版书籍:<手把手教你架构3D游戏引擎>电子工业出版社和<Unity3D实战核心技术详解 ...
随机推荐
- Unix IPC之Posix消息队列(3)
struct mq_attr { long mq_flags; /* message queue flag : 0, O_NONBLOCK */ long mq_maxmsg; /* max numb ...
- OBJECT_ID()的使用方法
数据库中每个对像都有一个唯一的ID值,用Object_name(id)可以根据ID值得到对像的名称,object_id(name)可以根据对像名称得到对象的ID object_id()只能返回用户创建 ...
- CCF CSP 201509-2 日期计算
CCF计算机职业资格认证考试题解系列文章为meelo原创,请务必以链接形式注明本文地址 CCF CSP 201509-2 日期计算 问题描述 给定一个年份y和一个整数d,问这一年的第d天是几月几日? ...
- vuejs、eggjs、mqtt全栈式开发设备管理系统
vuejs.eggjs.mqtt全栈式开发简单设备管理系统 业余时间用eggjs.vuejs开发了一个设备管理系统,通过mqtt协议上传设备数据至web端实时展现,包含设备参数分析.发送设备报警等模块 ...
- Warning -27077: The "vuser_init" section contains web function(s) when the "Simulate a new user on each iteration" Run-Time Setting is ON.
通过LR来录制登录过程并生成脚本,设置了自动关联,并回放录制脚本,观察回放日志发现没有报error信息,说明脚本没有问题,将脚本放入Controller中设置100个用户设置运行,发现运行一段时间开始 ...
- 阿里云ali-oss图片增加水印
先附上文档连接 : https://helpcdn.aliyun.com/document_detail/44957.html 水印文字或图片必须经过一下转化 URL安全的Base64位编码 在图片处 ...
- 几种JS&CSS框架
易用的,图形种类丰富的,美观的几种: 1.bootstrap 文档地址: http://www.cnblogs.com/fnng/p/4446047.html http://www.runoob.co ...
- 基于 Laravel 开发博客应用系列 —— 项目必备软件安装
1.概述 通过本项目我们将会构建一个简单.清爽.优雅的博客系统,以及维护管理该博客的后台. 本项目源码公开在GitHub上:https://github.com/ChuckHeintzelman/l5 ...
- R语言实战(十)处理缺失数据的高级方法
本文对应<R语言实战>第15章:处理缺失数据的高级方法 本文仅在书的基础上进行简单阐述,更加详细的缺失数据问题研究将会单独写一篇文章. 处理缺失值的一般步骤: 识别缺失数据: 检查导致数据 ...
- softmax 杂谈
在多分类问题中,我们可以使用 softmax 函数,对输出的值归一化为概率值.下面举个例子: import sys sys.path.append("E:/zlab/") from ...