当前位置: 首页 > wzjs >正文

浙江省建设厅信息中心网站西安网站建设制作公司

浙江省建设厅信息中心网站,西安网站建设制作公司,作风建设活动网站,网站建设中源码C#知识:结构体 结构体是一种自定义数据类型,用户可以根据自身需求设计自己的结构体用来表示某种数据集合。结构体是一种值类型,结合了值类型的优点,避免了引用类型的缺点。本文简单介绍并探究一下C#中的结构体。 结构体一般写在命…

C#知识:结构体

结构体是一种自定义数据类型,用户可以根据自身需求设计自己的结构体用来表示某种数据集合。结构体是一种值类型,结合了值类型的优点,避免了引用类型的缺点。本文简单介绍并探究一下C#中的结构体。


  • 结构体一般写在命名空间中
  • 结构体中成员默认为private的,包括构造函数
  • 结构体类似类,不过它是值类型,存储在栈上
  • 结构体支持运算符重载
  • 结构体可以继承接口
  • 结构体中可以存在成员变量、构造函数、成员函数
  • 结构体成员变量可在内部初始化*
  • 结构体的构造函数可以只初始化部分成员变量*
  • 结构体中可以自定义无参构造*
  • 结构体不能有析构函数
  • 结构体不能被继承,成员变量和函数不能用protect关键字修饰
  • 结构体不能被static修饰
  • 结构体不能在内部声明自身类型的结构体变量
namespace LearnStruct
{struct Point : IComparable<Point>{//结构体中可以存在成员变量、构造函数、成员函数//结构体不能有析构函数//结构体不能被继承,成员变量和函数不能用protect关键字修饰//结构体不能被static修饰//结构体不能在内部声明自身类型的结构体变量public int x = 2;   //结构体成员变量在内部初始化public int y;int z;public Point() => Console.WriteLine("结构体无参构造被调用");public Point(int x) => this.x = x;public Point(int x, int y) : this(x) => this.y = y;public Point(int x, int y, int z) : this(x, y) => this.z = z;public int CompareTo(Point other){if (other.x > this.x)return -1;else if (other.x < this.x)return 1;return 0;}public void Print(){Console.Write($"x = {this.x},");Console.Write("y = {0},", this.y);Console.WriteLine("z = " + this.z);}public static Point operator +(Point _self, Point _other){return new Point(_self.x + _other.x, _self.y + _other.y, _self.z + _other.z);}}internal class Program{static void ChangeValue(Point point){point.x += 1;point.y += 1;}static void Main(string[] args){//结构体一般写在命名空间中Point p1 = new Point(); //结构体无参构造被调用Point p2;   //声明结构体变量,需要进行初始化后才能使用p2 = new Point();   //结构体无参构造被调用Console.WriteLine(p1.x);    //2Console.WriteLine(p2.x);    //2//结构体中成员默认为private的,包括构造函数,p2.z点不出来//结构体类似类,不过它是值类型,存储在栈上Point p3 = new Point(1, 2, 3);p3.Print(); //x = 1,y = 2,z = 3ChangeValue(p3);p3.Print(); //x = 1,y = 2,z = 3//结构体支持运算符重载Point p4 = new Point(3, 3, 3);Point p5 = new Point(6, 6, 6);Point p6 = p4 + p5;p6.Print(); //x = 9,y = 9,z = 9//结构体可以继承接口List<Point> points = new List<Point>();points.Add(new Point(2, 3, 1));points.Add(new Point(9, 6, 3));points.Add(new Point(3, 5, 6));points.Add(new Point(8, 8, 8));points.Sort();foreach (Point p in points)p.Print();/*输出:x = 2,y = 3,z = 1x = 3,y = 5,z = 6x = 8,y = 8,z = 8x = 9,y = 6,z = 3*/}}
}

参考资料:

  1. 《唐老狮C#》

本篇结束,感谢您的阅读

在这里插入图片描述

http://www.dtcms.com/wzjs/394759.html

相关文章:

  • 做数码后期上数码网站百度关键词优化工具
  • 设计师联盟重庆企业站seo
  • 有什么网站可以免费做图seo资料网
  • 作风建设 宣讲家网站seo网站推广计划
  • 做网站应该会什么问题深圳推广公司有哪些
  • 网站如何投放广告国外免费推广网站有哪些
  • 用什么做网站更快捷方便百度指数的主要功能有
  • 有哪些可以做调查的网站免费推广的渠道有哪些
  • 网站保姆-源码下载域名批量注册查询
  • 常设中国建设工程法律论坛网站广东企业网站seo哪里好
  • 采集wordpress整站数据郑州关键词排名顾问
  • 小程序就是做网站网络媒体推广产品
  • 广东两学一做考试网站搜索引擎哪个最好用
  • 商城站地址优化网站关键词的技巧
  • 紫阳网站建设上海网络推广平台
  • 网站开发毕业设计任务书范文广告投放方式
  • 动态网站开发技术有哪些电脑软件推广平台
  • 做的好的大学生旅行有哪些网站好微信朋友圈推广
  • 找快照网站查询网站seo优化方案设计
  • 宛城区微网站建设制作网站建设入门
  • 公务员写作材料网站上海专业seo服务公司
  • 上海平台网站建设哪家好西安网站制作费用
  • 文档里链接网站地址怎么做免费手机网站建站系统
  • 网站留言板块怎么做百度一下你就知道搜索引擎
  • 网站建设最重要的因素哪里有网站推广优化
  • 网站建设 学习什么软文案例大全300字
  • 成都p2p网站建设windows7系统优化工具
  • 深圳网站设计招聘粤语seo是什么意思
  • 专教做蛋糕的网站百度下载安装最新版
  • 一个专门做恐怖片的网站2022适合小学生的简短新闻