C#入门之结构类型Struct
概述:
结构类似于类,但结构为值类型,存储于栈中。
结构不能继承和被继承,但可实现接口。
结构成员访问级别有public,private(默认) ,internal。
1、简单结构
可以将无方法,属性等简单类,声明为结构,提高系统处理效率。
定义结构类型:
struct Pair { public int x; public string y; }
调用:
Pair p;//只有结构中只存在字段时,new才可以省略。 Pair P1 = new Pair(); p.x = 10; p.y = "a"; Console.WriteLine(p.y);
2、 带构造函数的结构
结构可以自定义带参数的构造函数,且必须显示初始化所有实例字段。不能显示创建默认构造函数。
void Main() { Pair P1 = new Pair(10); P1.Add(1); Console.WriteLine(P1.X); } struct Pair { private int x;//实例字段不能在声明时赋值(即不能初始化) private static Pair orign = new Pair();//静态字段可以在声明时赋值 public Pair(int x)//构造函数 { this.x = x; } public int X //结构可以有属性 { set { x = value; } get { return x; } } public void Add(int y)//结构也可以有方法 { x = x + y; } }
到此这篇关于C#入门之结构类型Struct的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持我们。
相关推荐
-
C#枚举类型与结构类型实例解析
本文以C#实例讲解了枚举类型与结构类型的用法,程序主要是通过个人电话本演示枚举类型与结构类型的用法,具体代码如下所示: using System; class ID { //定义枚举类型 public enum Sex { male, female };//注意别忘了这里的分号 //定义电话本的结构类型 public struct TelBook { public string name; public Sex sex;//性别类型为枚举类型 public string number; } //
-
C#枚举类型和结构体详解
注意:枚举类型和结构体都属于值类型. 结构体:就是一个自定义的集合,里面可以放各种类型的元素,用法大体跟集合一样. 一.定义的方法: struct student { public int nianling; public int fenshu; public string name; public string sex; public int sum; } 以上的语句就是定义一个名称为student的结构体,其中包含int类型的年龄.分数.总和,和string类型的姓名.性别. 二.用法: 在
-
C#语言基础——结构体和枚举类型全面解析
一.结构体(struct) 结构类型是用户自己定义的一种类型,它是由其他类型组合而成的,可包含构造函数.常数.字段.方法.属性.索引器.运算符.事件和嵌套类型的值类型.结构在几个重要方面不同于类:结构为值类型而不是引用类型,并且结构不支持继承. 用结构的主要思想是用于创建小型的对象,如Point和FileInfo等等.这可以节省内存,因为没有如类对象所需的那样有额外的引用产生.例如,当声明含有成千上万个对象的数组时,这会引起极大的差异. 结构体是一个变量组,将一组变量放在一起,其实就是一个自定义
-
C#入门之结构类型Struct
概述: 结构类似于类,但结构为值类型,存储于栈中. 结构不能继承和被继承,但可实现接口. 结构成员访问级别有public,private(默认) ,internal. 1.简单结构 可以将无方法,属性等简单类,声明为结构,提高系统处理效率. 定义结构类型: struct Pair { public int x; public string y; } 调用: Pair p;//只有结构中只存在字段时,new才可以省略. Pair P1 = new Pair(); p.x = 10; p.y = "
-
C#基础入门之值类型和引用类型的区别详析
目录 一.值类型和引用类型的区别 1.赋值时的区别 2.内存分配的区别 3.来自继承结构的区别 二.总结 一.值类型和引用类型的区别 .NET的类型可以分为两类:值类型和引用类型.这两种类型各有特点,即使它们都继承自System.Object,并且有装箱和拆箱等操作确保两种类型可以方便地交互,但是理解值类型和引用类型将有助于程序员编写出高效的代码,相反的,在不理解值类型和引用类型的情况下,程序员很容易编写出可以正确执行但性能较差的代码. 所有.NET的类型都可以分为两类:值类型和引用类型.最简单
-
浅谈Go语言中的结构体struct & 接口Interface & 反射
结构体struct struct 用来自定义复杂数据结构,可以包含多个字段(属性),可以嵌套: go中的struct类型理解为类,可以定义方法,和函数定义有些许区别: struct类型是值类型. struct定义 type User struct { Name string Age int32 mess string } var user User var user1 *User = &User{} var user2 *User = new(User) struct使用 下面示例中user1和
-
php读取二进制流(C语言结构体struct数据文件)的深入解析
尽管php是用C语言开发的,不过令我不解的是php没有提供对结构体struct的直接支持.不过php提供了pack和unpack函数,用来进行二进制数据(binary data)和php内部数据的互转: 复制代码 代码如下: string pack ( string $format [, mixed $args [, mixed $...]] ) //Pack given arguments into binary string according to format. array unp
-
C语言中结构体struct编写的一些要点解析
一.关于结构体的声明 1.匿名声明.如: struct { int i,j; }point; 说明: 这段代码的含义是,声明一个无名(anonymous)的结构体,并创建了一个结构体变量point.如果这段声明是放在全局域(在任意函数(比如main函数)外)内,那么point内的变量将被初始化为默认值,换句话说,以这种方式声明结构体变量时就已经为它分配了内存空间. 适用于该结构体只需要产生一个变量!本例中,该匿名结构体将有且仅有point这个结构体变量! 不同的匿名结构体变量,类型是不同的!如
-
浅析C# 结构体struct
结构体 有时候我们仅需要一个小的数据结构,类提供的功能多于我们需要的功能:考虑到性能原因,最好使用结构体. 结构体是值类型,存储在栈中或存储为内联(如果结构体是存储在堆中的另一个对象的一部分). 例如类class: public class Dimensions { public Dimensions(double length, double width) { Length = length; Width = width; } public double Length { get; set;
-
C语言之结构体(struct)详解
目录 为什么需要引入结构体 struct 定义 typedef与#define 结构体变量初始化及成员访问 结构体访问 总结 为什么需要引入结构体 原有的数据类型不能满足需求,因此才设计了构造类型结构体 struct 定义 struct name { 基础类型 结构成员 } 1.无名构造类型 2.有名构造类型 struct student { char name[30]; char sex; int age; float high; }stu; struct student stu2; 3.别名
-
C语言结构体(struct)的详细讲解
目录 引言 1. 动态内存管理 2. 结构体 2.1 定义语法 2.2 定义示例 2.3 初始化 2.4 结构体赋值 2.5 结构体数组 2.6 结构体指针赋值 3. 学生管理系统 附:结构体变量的存储原理 总结 引言 当前文章介绍动态堆空间内存分配与释放,C语言结构体定义.初始化.赋值.结构体数组.结构体指针的相关知识点,最后通过一个学生管理系统综合练习结构体数组的使用. 1. 动态内存管理 C语言代码----->编译----->链接------>可执行的二进制文件(windows下x
-
详解C语言中结构体(struct)的用法
目录 粉丝问答 三种结构体类型变量说明 1. 先定义结构,再定义结构变量 2. 定义结构体类型的同时说明变量 3. 直接说明结构变量 结构体成员表示方法 结构体指针做参数 结构体初始化 定义变量的同时初始化 先定义在初始化 常用初始化 typedef与struct 前置声明 结构体对齐 粉丝问答 有个粉丝在群里问了这样一个问题,问题在图中已经标出,如下图. DQuestsion 头文件的结构体的定义为: typedef struct{ u8 bmRequestType; u8 bRequest;
随机推荐
- JavaScript trim 实现去除字符串首尾指定字符的简单方法
- 正确设置ADSL Modem NAT 让网络应用无局限
- photoshop去除图片上的水印
- 简单学习Java抽象类要点及实例
- 了解Javascript的模块化开发
- ASP.NET实现URL映射的方法
- Go语言常见哈希函数的使用
- MySQL创建带特殊字符的数据库名称方法示例
- JS使用post提交的两种方式
- 解读css发展历史
- centos7防火墙导致java程序访问mongodb3.0.1时报错的问题分析
- Jquery 监视按键,按下回车键触发某方法的实现代码
- jQuery学习7 操作JavaScript对象和集合的函数
- 让页面上两个div中的滚动条(滑块)同步运动示例
- Android应用中通过Layout_weight属性用ListView实现表格
- JS闭包、作用域链、垃圾回收、内存泄露相关知识小结
- Android中自定义view实现侧滑效果
- 列出KesionCMS 4.0系统后台菜单,让大家熟悉下
- 免费空间 免费提供的原因
- Android APK应用安装原理解析之AndroidManifest使用PackageParser.parserPackage原理分析