博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
结构—C#基础回顾
阅读量:6080 次
发布时间:2019-06-20

本文共 1285 字,大约阅读时间需要 4 分钟。

  hot3.png

 3.5.cs

/*author:frankdatetime:2017-8-2 16:59:00结构:1.结构是值类型,不是引用类型。它们存储在栈中或存储为内联(inline),其生存期的限制于简单的数据类型一样。2.结构不支持继承,但是结构体是继承Object,也可以访问及重新Object里面的方法。结构的继承链是:每个结构派生自System.ValueType类,System.ValueType类又派生自System.Object。3.对于结构,构造函数的工作方式有一些区别。尤其是编译器总是提供一个无参数的默认构造战术,它是不允许替换的。由于结构是值类型,传递的时候是直接复制值,不使用的时候就会被立即删除,由于结构传递的时候是按值传递,所以数据较大的情况下传递就会影响性能,可以使用ref按引用传递,但是底层方法修改结构体中的数据也会影响到实际结构体中的值。结构体默认会有一个无参的构造函数,而且不允许替换,所以自己不能定义无参构造函数。*/using System;namespace Sample{	public class Program	{		public static void Main(string[] args)		{			Dimensions point = new Dimensions();//跟类不一样,如果是类的话用new就会在堆内存中开辟内存空间,结构只是调用构造函数而已。			point.Length = 3;			point.Width = 6;			Console.WriteLine(point.Diagonal);			Dimensions point2;//不用new也行,构造函数只是初始化字段值。			point2.Length = 2;			point2.Width = 5;			Console.WriteLine(point2.Diagonal);		}	}	//默认构造函数把数值字段都初始化为0,把引用类型字段初始化为null,且总是隐式的给出,即使提供了其他带参数的构造函数,也是如此。提供字段的初始值也不能绕过默认构造函数。	//也可以向类一样提供Close()方式及Dispose()方法。	public struct Dimensions	{		public double Length;		//public double Length = 1;//编译错误的,不能预定义自己的值		public double Width;		public Dimensions(double length,double width)		{			Length = length;			Width = width;		}		public double Diagonal		{			get			{				return Math.Sqrt(Length * Length + Width * Width);			}		}	}}

 

转载于:https://my.oschina.net/Sadhu/blog/1499761

你可能感兴趣的文章
基础代码随笔
查看>>
如何实现SVN导出某段时间修改过的文件;自动将class文件部署到服务器中;重启服务器...
查看>>
PropertyUtils、BeanUtils的copyProperties()和set、get性能比较
查看>>
2014-11-10 关于C# 如何获取本地电脑的UTC时区
查看>>
Ceph的基本情况进行概要介绍
查看>>
MySQL数据库优化思路之配置文件优化
查看>>
分享纯 nginx 防御代码 nginx safe.conf
查看>>
Python-求素数程序
查看>>
如何去掉ECSHOP meta标签中的版本号
查看>>
【重构与模式】6.3 用Factory封装类
查看>>
Go语言interface详解
查看>>
ASP实现自动解析网页中的图片地址
查看>>
一个基于CSS3的网站
查看>>
策划了个.NET控件的案例大赛
查看>>
jdk安装配置环境变量
查看>>
Spring Batch JobExecutionDecider
查看>>
java守护线程的理解
查看>>
关于模版模式
查看>>
偶尔看到的c11新特性2
查看>>
控制并发访问资源 -- Semaphore
查看>>