C#_基础_结构Struct(八)

一般情况下,不建议使用结构。

结构中可以包含多种不同类型的字段,方法

定义一个结构:

1  public struct Person
2         {
3             public string _name;//命名规范字段前前加下划线
4            public   int _age;
5            public   char _gender;
6            public QQState _state; //枚举类型
7         }

结构声明:调用

1  //声明结构变量,实质上和枚举一样,int 都是变量,
2              Person zhangsan;
3              zhangsan._name = "zhangsan";
4              zhangsan._age = 14;
5              zhangsan._state = QQState.Busy;
6              zhangsan._gender = ‘男‘;

结构中也可以有方法:

 1  public struct Person
 2         {
 3             public string _name;//命名规范字段前前加下划线
 4            public   int _age;
 5            public   char _gender;
 6            public QQState _state; //枚举类型
 7             public void Run()
 8            {
 9                Console.WriteLine("Run");
10            }

调用:

zhangsan.Run();

结构特点:

结构和类不一样,不可以new对象。直接声明对象就可以

结构是值类型,所以对象只在栈中,不会在堆中开空间

结构没有默认的构造函数。

给结构加构造方法:必须把结构中所有的字段都赋值才可以

 1  /// <summary>
 2         /// 没有字段的情况
 3         /// </summary>
 4         public struct Student
 5         {
 6             public Student()
 7             {
 8
 9             }
10             public void Study()
11             {
12
13             }
14         }

结构new对象:

  Student s = new Student();

 1  /// <summary>
 2         /// 有字段的结构
 3         /// </summary>
 4         public struct Person
 5         {
 6             public string _name;//命名规范字段前前加下划线
 7             public int _age;
 8             public char _gender;
 9             public QQState _state; //枚举类型
10
11             public Person(string name)
12             {
13                 this._name = name;
14                 this._age = 12;
15                 this._gender = ‘男‘;
16                 this._state = QQState.Busy;
17
18             }
19
20
21         }

原文地址:https://www.cnblogs.com/CeasarH/p/9163994.html

时间: 2024-08-03 22:52:58

C#_基础_结构Struct(八)的相关文章

C#_基础_部分类partial(十八)

在同一个命名空间下,只能定义一个相同类名的类,例如在一个命名空间下只能有一个 Person类. 部分类:理解为每个部分只是组成类的一部分,其实还是一个类,所有的成员都是共享的,也就是说在一个部分类中定义的变量, 在另一个部分类中可以使用,那么在一个部分类中定义的变量,在其他部分类中不能重复定义,可以理解为把一个类中的成员,分 开放到不同的类中. 通过案例演示: 1 using System; 2 using System.Collections.Generic; 3 using System.L

C#_基础_数组(九)

概念:一次性存储多个相同类型的变量,区别结构一次性声明多个不同类型的变量 1.动态初始化数组 //数组类型[] 数组名字 = new 数组类型[数组长度]; int[] nums = new int[10]; //声明一个 int类型, 长度10的 数组 数组中默认是0 给数组赋值: 1 nums[5] = 10; 2 nums[3] = 12; 2.静态初始化 1 int[] num2 = { 1, 2, 3 }; 2 //下面两种可以,但是比第二中更复杂,一般用第一和第二中, 3//第三种传

C++_基础_运算符重载2

内容: (1)只能用成员形式重载的运算符 (2)new/delete操作符的重载 (3)封装和继承的初识 (4)继承的特性 (5)子类及其函数的特性 (6)多重继承和虚继承 1.只能用成员形式重载的运算符(1)[] 下标操作符 (2)() 函数操作符(3)* -> 间接操作符 2.new/delete操作符的重载 注意: 如果需要在调用构造函数之前做一些初始化工作/在调用析构函数之后做一些善后工作,则可以通过new/delete运算符重载的函数来实现 3.封装和继承的初识3.1 概念(1)封装

C++_基础_继承、多态

内容: (1)子类中的拷贝构造和拷贝赋值 (2)多继承和虚继承 (3)多态的初识 (4)虚析构的特性和使用 (5)多态的底层实现 (6)纯虚函数.抽象类的概念 1.子类中的拷贝构造和拷贝赋值 子类中的拷贝构造和拷贝赋值可能也需要显式的指定父类子对象的拷贝构造和拷贝赋值的方式 2.多继承和虚继承2.1 格式: class 子类名 : 继承方式 父类名1,继承方式 父类名2,... { //子类中的属性和行为 }; 如: 员工类 / \销售员工类 管理者类 \ / 销售管理类 叫做:钻石继承 2.2

C#_基础_文件夹操作类Directory(十七)

1 //using System.IO; 2 ///Directory:操作文件夹/目录的类,Directory是静态类 3 ///创建文件夹 4 Directory.CreateDirectory(@"D:\a"); 5 //注释:如果D盘中已经有了a文件夹,不会重新创建,不会覆盖 6 7 //删除文件夹 8 // FALSE :只能删除空文件夹,如果不是空文件夹会报错 9 Directory.Delete(@"D:\a",false); 10 //TTRUE:删

动态规划_基础_任意子区间序列求和问题_滑动窗口解法_多种思路_分治思想演变

题目描述 给出一段序列,选出其中连续且非空的一段使得这段和最大. 输入描述 第一行是一个正整数 N ( 1 ≤ N ≤ 200000 ) ,表示了序列的长度. 接下来的 N 行包含 N 个绝对值不大于 10000 的整数 A [ i ] ,描述了这段序列. 输出描述 仅包括 1 个整数,为最大的子段和是多少,子段的最小长度为 1 . 样例输入 72-43-12-43 样例输出 4 Hint Origin: SidneyEdit by stdKonjac in 2020 解题思路: 关于求子区间求

动态规划_基础_最长公共子序列_多种方法_递归/dp

D: 魔法少女资格面试 题目描述 众所周知,魔法少女是一个低危高薪职业.随着近年来报考魔法少女的孩子们越来越多,魔法少女行业已经出现饱和现象!为了缓和魔法少女界的就业压力,魔法少女考核员丁丁妹决定增加魔法少女资质考核的难度.然而,即使如此,通过资质考核的魔法少女们数量仍然过多,因此,丁丁妹决心增加一轮面试,从而淘汰掉更多的预备魔法少女.具体而言,她打算对所有面试者询问这样一个问题:给两个长度为 n 的全排列,它们的最长公共子序列长度是多少?不幸的是,由于丁丁妹没有好好上过学,她自己也不知道答案是

Demo02_对结构体进行文件读写_张仕传_作业_

#include <iostream> using namespace std; #define StructArrarySize 5 // 老师数量 #define StudentNum 3 // 每位老师的学生的数量 #define FileName "f:/1.txt" // 文件路径和名称 #define LineMaxLen 1024 // 每行最大长读 #define KeyMaxLen 20 // key的最大长度 typedef struct _AdvTea

第一天的代码练习_基础

//第一天的内容包括JAVA环境配置,数据类型的讲解,数据类型的运算.在环境配置中,要求在 cmd命令窗口下,在任何文件目录下,输入javac.exe,都能够出现正确的显示结果--就需要在环境变量 中设置 public class Test{      public static void main(String[] args){        //不能使用保留字.关键字       /*       变量定义的格式 :数据类型 变量名=初始化值       变量必须先赋值,后使用