首页 > 编程语言 >C# 结构体(Struct)

C# 结构体(Struct)

时间:2024-08-19 22:23:34浏览次数:6  
标签:Struct C# int 枚举 MyStruct2 类型 public 结构

1.结构体是值类型数据结构。

  引用类型派生自 System.Object ,而值类型均隐式派生自 System.ValueType

  // 数值类型
              
             //is  代表 判断左边内容 和右边的类型 是否一致  如果一致 返回true  反之为false
 
            Console.WriteLine(1 is ValueType); // true
                                               // 布尔类型
            Console.WriteLine(true is ValueType); // true
                                                  // 结构类型
           Console.WriteLine(new Person() is ValueType); // false
                                              // 枚举类型
            Console.WriteLine(EnumTest.Item1 is ValueType); // true

2.struct 关键字用于创建结构体

struct MyStruct2
 {
          
 }  

3.结构可带有方法、字段、属性、运算符,委托和事件。

struct MyStruct2 {
            private int A;
            public int Age { get; set; }
            public void Test() { };
            delegate void Delegate1();
            event  Delegate1 Delegate2;
 
            public static MyStruct2 operator -(MyStruct2 stu1, MyStruct2 stu2)
            {
 
                return new MyStruct2();        
              
            }
 
        }

4.结构可定义构造函数,但不能定义析构函数。

不能定义无参构造函数。无参构造函数(默认)自带

如果定义有参构造函数 必须在 构造函数内部 初始化所有 字段和属性

 struct MyStruct2 {
            private int A;
            public int Age { get; set; }
            public void Test() { };
            public   delegate void Delegate1();
            public  event  Delegate1 Delegate2;
 
            public MyStruct2(int a,int age,Delegate1 delegate1) { 
            
                A = a;
                Age = age;
                Delegate2 = delegate1;
            }
            //~MyStruct()
           {   
               //错误
           }
 
        }

5.结构可实现一个或多个接口  但是不能继承其他类

6.结构不支持被其他类继承。

7.结构成员不能指定为virtual 或 protected、

8.结构可以使用 New 创建对象 也可以不使用 ,如果结构中有属性 必须使用new 创建对象

9.结构可以嵌套在类中使用 也可以和类并列定义在命名空间中

类和结构总结:

   1. 类和结构实际上都是创建对象的模板, 每个对象都包含数据,并提供了处理和访问数据的方法
   2. 类是引用类型 对象存于堆中 可以通过GC管理内存   结构是值类型 对象存于栈中  、
   3  结构不能被继承  也不能继承其他类  但是能继承接口
   4. 结构和类 都能使用new 创建对象   但是结构也可以不使用
   5. 结构作为方法参数 默认是值传递   类类型默认是引用传递

枚举

枚举是描述一组整数值的结构  使数字更具有具体意义

作用:

1.枚举是值类型

2.枚举类型使用 enum 关键字声明的。

3.枚举是一组整型常量 默认是从 0开始  也可以自己定义范围

4.枚举使用enum关键字来声明,与类同级。枚举本身可以有修饰符,但枚举的成员始终是公共的,不能有访问修饰符。枚举本身的修饰符仅能使用public和internal。

5.枚举都是隐式密封的,不允许作为基类派生子类

标签:Struct,C#,int,枚举,MyStruct2,类型,public,结构
From: https://blog.csdn.net/2401_84642440/article/details/141336271

相关文章

  • Elsa V3学习之Flowchart详解(上)
    前面我们通过界面学习了Elsa的一些基本使用,若是有实操的小伙伴们,应该可以发现,我们工作流定义中的root,既我们的工作流画布其实也是一个activity,就是Flowchart。那么本文将来解读以下flowchart的执行逻辑。Flowchart源码为了方便大家,这里先直接把flowchart的源码贴出。usingSyst......
  • C#上传excel,解析主从表,1W数据快速插入数据库,5s完成
    参考文章netcore天马行空系列-各大数据库快速批量插入数据方法汇总ExcelMapperController核心代码[HttpPost]publicasyncTask<IActionResult>ImportToDoItems(IFormFilefile){if(file==null||file.Length==0){returnBadRequest("Fileis......
  • AGC002 题解
    目录A-RangeProductB-BoxandBallC-KnotPuzzleA-RangeProduct分情况讨论:\(a\le0\leb\)时,乘积一定为\(0\);否则:\(0<a\leb\)时,乘积一定为正;否则,负数的个数有\(b-a+1\)个,判断这个数是否为奇数,若是,乘积为负,否则为正。#include<bits/stdc++.h......
  • c语言中用%lf输出double型和float型变量
     001、 测试%lf输出double型和int型变量的差异 [root@PC1test]#lstest.c[root@PC1test]#cattest.c##测试c程序#include<stdio.h>intmain(void){doublei;/*声明doble型和float型变量*/floatj;......
  • Linux scp 文件传输
    scp将本服务器的文件传输到远程服务器基本语法scp`[源路径]``[目标服务器]`:`[目标路径]`样例将本服务器123.txt文件传输到远程服务器并重命名为456.txtscp123.txtuser@remote_server:/home/tabu/456.txt使用-r选项复制整个目录scp-rtabu/*user@remote_server:/ho......
  • 章节七:215 +个 ChatGPT优秀提示以及如何编写自己的提示
    关注的人一天可以看到10篇文章!章节一:章节一:215+个ChatGPT优秀提示以及如何编写自己的提示-CSDN博客章节二:章节二:215+个ChatGPT优秀提示以及如何编写自己的提示-CSDN博客章节三:章节三:215+个ChatGPT优秀提示以及如何编写自己的提示-CSDN博客章节四:章节四:215+个Chat......
  • 《花100块做个摸鱼小网站! 》第三篇—热搜表结构设计和热搜数据存储
    ⭐️基础链接导航⭐️☁️阿里云活动地址......
  • CSP24
    学了些DP学校题库有\(BUG\)首先要满足条件\(x,y\)的二进制有1的位必然包含\(a\),然后让\(s-2a\),也就是除去二进制包含\(a\)有1的位,然后\(<0\)肯定无解,其次是如果有与\(a\)同一级的含\(1\)二进制位也不合法点击查看代码#include<bits/stdc++.h>#definespeed()ios::sync......
  • Android开发 - DisplayMetrics 类控制布局图形的缩放显示解析
    DisplayMetrics是什么DisplayMetrics类在Android中用于获取设备的显示属性(像素等)DisplayMetrics的主要属性metrics.density:屏幕密度,用于决定屏幕上每英寸的像素数DisplayMetricsmetrics=newDisplayMetrics();density=metrics.density;常见值:0.75(低密度)、1.0......
  • rsync概述详解
    一、rsync基础概念:rsync是实时数据备份的作用1、rsync数据备份传输的方式本地模式:类似cp命令,与其不同的是,rsync属于增量备份远程方式模式:不区分服务端和客户端,实现两台主机时间到数据拷贝,可以直接进行数据的上传/下载进行备份/脚本打包守护进程模式:这种模式采用虚拟用户的......