在变量声明中指定类型

2023-10-26

1.内置类型

C#提供了一组标准的内置对象来表示整数,浮点数,布尔表达式,文本字符,十进制值和其他数据类型。还有内置的 string 和 object 类型。

2.自定义类型

可以使用 struct 、 class 、 interface 、 enum 和 record 构造来创建自己的自定义类型。 NET 类库本身是一组自定义类型,以供你在自己的应用程序中使用。 默认情况下,类库中最常用的类型在任何 C# 程序中均可用。 对于其他类型,只有在显式添加对定义这些类型的程序集的项目引用时才可用。 编译器引用程序集之后,你可以声明在源代码的此程序集中声明的类型的变量(和常量)。

3.通用类型系统

它支持继承原则。 类型可以派生自其他类型(称为 基类型)。 派生类型继承(有一些限制)基类型的方法、属性和其他成员。 基类型可以继而从某种其他类型派生,在这种情况下,派生类型继承其继承层次结构中的两种基类型的成员。 这样的统一类型层次结构称为通用类型系统 (CTS)。

4.类值型

值类型派生自System.ValueType。 派生自 System.ValueType 的类型在 CLR 中具有特殊行为。 值类型变量直接包含它们的值,这意味着在声明变量的任何上下文中内联分配内存。 对于值类型变量,没有单独的堆分配或垃圾回收开销。 值类型分为两类: struct 和 enum 。内置的数值类型是结构,它们具有可访问的字段和方法:

5.可将这些类型视为简单的非聚合类型,为其声明并赋值:

6.值类型已密封,这意味着不能从任何值类型派生类型。 不能将结构定义为从任何用户定义的类或结构继承,因为结构只能从 System.ValueType 继承。当你将值类型传递给System.Object 或任何接口类型作为输入参数的方法时,就会发生装箱操作。使用 struct 关键字可以创建你自己的自定义值类型。

7.另一种值类型是 enum 。 枚举定义的是一组已命名的整型常量。 例如,.NET 类库中的 System.IO.FileMode 枚举包含一组已命名的常量整数,用于指定打开文件应采用的方式。 下面的示例展示了具体定义:

 

这是我所学到的,所以我要分享给你们,希望可以帮助到你们。

以上就是我的分享,新手上道,请多多指教。如果有更好的方法或不懂得地方欢迎在评论区教导和提问喔!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在变量声明中指定类型 的相关文章

  • 将链接对象转换为流或集合

    我想迭代堆栈跟踪 堆栈跟踪由可抛出对象组成 其 getCause 返回下一个可抛出对象 最后一次调用 getCause 返回 null 示例 a gt b gt null 我尝试使用 Stream iterable 这会导致 NullPoi
  • 如何解决 onEditCommit 事件上的类型不匹配错误?

    我在 Fxml 中使用 onEditCommit 事件在用户编辑数据后检索数据 FXML 代码
  • PropertySources 中各种源的优先级

    Spring引入了新的注释 PropertySources对于所有标记为的类 Configuration since 4 0 需要不同的 PropertySource作为论证 PropertySources PropertySource c
  • JavaFX - setVisible 隐藏元素但不重新排列相邻节点

    在 JavaFX 中 如果我有一个场景有 2VBox元素和每个VBox有多个Label in it 如果我设置顶部VBox to 无形的 为什么底部VBox 不向上移动顶部的场景VBox was The VBox is 无形的但我希望其他物
  • 如何将 XMP XML 块序列化为现有的 JPEG 图像?

    我有许多 JPEG 图像 其中包含损坏的 XMP XML 块 我可以轻松修复这些块 但我不确定如何将 固定 数据写回图像文件 我目前正在使用 JAVA 但我愿意接受任何能让这项任务变得容易的事情 这是目标关于 XMP XML 的另一个问题
  • 所有junit测试后的清理

    在我的项目中 我必须在所有测试之前进行一些存储库设置 这是使用一些棘手的静态规则来完成的 然而 在所有测试之后我不知道如何进行清理 我不想保留一些神奇的静态数字来引用所有测试方法的数量 我应该一直维护它 最受赞赏的方法是添加一些侦听器 该侦
  • Java:VM 如何在 32 位处理器上处理 64 位“long”

    JVM 如何在 32 位处理器上处理 64 位的原始 long 在多核 32 位机器上可以并行利用多个核心吗 64 位操作在 32 位机器上慢了多少 它可能使用多个核心来运行不同的线程 但不会并行使用它们进行 64 位计算 64 位长基本上
  • 打印包含 JBIG2 图像的 PDF

    请推荐一些库 帮助我打印包含 JBIG2 编码图像的 PDF 文件 PDFRenderer PDFBox别帮我 这些库可以打印简单的 PDF 但不能打印包含 JBIG2 图像的 PDF PDFRenderer尝试修复它 根据 PDFRedn
  • 为什么 ConcurrentHashMap::putIfAbsent 比 ConcurrentHashMap::computeIfAbsent 更快?

    使用 ConcurrentHashMap 我发现computeIfAbsent 比putIfAbsent 慢两倍 这是简单的测试 import java util ArrayList import java util List import
  • tomcat 过滤所有 web 应用程序

    问题 我想对所有网络应用程序进行过滤 我创建了一个过滤器来监视对 apache tomcat 服务器的请求 举例来说 它称为 MyFilter 我在 netbeans 中创建了它 它创建了 2 个独立的目录 webpages contain
  • jmap - 组织和堆操作会给 jvm 带来开销吗?

    正如标题所述 需要多少开销jmap histo and jmap heap分别带到jvm 如果一个内存敏感的 Java 进程处于OutOfMemory 例如 大约 96 的堆已满 并且无法通过 full gc 清除 其中一项操作是否有可能将
  • OpenJDK 版本控制

    上下文 我想确保我们系统上安装的 Java 不受 CVE 2022 21449 的影响 java version 给出 openjdk version 11 0 7 2020 04 14 LTS OpenJDK Runtime Enviro
  • 将 RSA 密钥从 BigIntegers 转换为SubjectPublicKeyInfo 形式

    WARNING 最初的问题是关于 PKCS 1 编码密钥 而问题中的实际示例需要SubjectPublicKeyInfo X 509 编码密钥 我目前正致力于在 java 中从头开始实现 RSA 算法 特别是密钥生成方面 现在我的代码可以给
  • 如何在android sdk上使用PowerMock

    我想为我的 android 项目编写一些单元测试和仪器测试 然而 我遇到了一个困扰我一段时间的问题 我需要模拟静态方法并伪造返回值来测试项目 经过一些论坛的调查 唯一的方法是使用PowerMock来模拟静态方法 这是我的 gradle 的一
  • 从java中的字符串数组中删除空值

    java中如何从字符串数组中删除空值 String firstArray test1 test2 test4 我需要像这样没有 null 空 值的 firstArray String firstArray test1 test2 test4
  • 如何移动图像(动画)?

    我正在尝试在 x 轴上移动船 还没有键盘 我如何将运动 动画与boat png而不是任何其他图像 public class Mama extends Applet implements Runnable int width height i
  • Spock模拟inputStream导致无限循环

    我有一个代码 gridFSFile inputStream bytes 当我尝试这样测试时 given def inputStream Mock InputStream def gridFSDBFile Mock GridFSDBFile
  • 重写Object类的finalize()方法有什么用?

    据我所知 在java中如果我们想手动调用垃圾收集器 我们可以执行System gc 1 我们在重写的finalize 方法中做了哪些操作 2 如果我们想手动调用JVM垃圾收集器 是否需要重写finalize 方法 我们在重写的 Finali
  • 为什么 BufferedWriter 不写入文件?

    我有这个代码 String strings Hi You He They Tetrabenzene Caaorine Calorine File file new File G words txt FileWriter fWriter Bu
  • Java中有类似分支/跳转表的东西吗?

    Java有类似分支表或跳转表的东西吗 分支表或跳转表是 根据维基百科 http en wikipedia org wiki Branch table 用于描述使用分支指令表将程序控制 分支 转移到程序的另一部分 或可能已动态加载的不同程序

随机推荐

  • hdlc协议解码的四种方法

    hdlc协议规定了 在hdlc中不能出现连续的6个1 因为这是hdlc帧的分割标志 因此在编码的时候每遇到5个连续的1就插入0 因此解码时就需要碰到5个连续的1就要去掉后面的0 而在我们的计算机中都是以整数字节描述信息 因此造成了用pc解h
  • 【uni-app教程】三、 UniAPP 生命周期

    三 UniAPP 生命周期 学习一个工具的目的核心是什么 是为了解决核心业务逻辑问题 业务逻辑很多时候简单的解释一句话 在合适的时机干合适的事情 OK 什么是合适的时机呢 简单的说 页面话行过程中 各个阶段的回调孟数就是页面中的时机 我们也
  • 如何在C语言中巧妙地避免使用if语句?

    近期在做CSAPP的homework时碰到一些题目 代码中不允许使用if语句 于是聪明的同学们想出了一个巧妙的办法 利用C语言中与运算符 的 短路 特性完成了这个任务 例如 如果C语言原语句是 if x gt y a x 为了去掉这个if
  • yolov4 darknet安装笔记

    yolov4 darknet安装笔记 cuda cudnn安装 cuda 10 0下载及安装 运行安装包 运行补丁包 建立软链接 添加环境变量 对应版本cudnn下载及安装 darknet GPU版本安装 Makefile修改 nvcc 路
  • LA@二次型标准形@标准化问题介绍和合同对角化@二次型可标准化定理

    文章目录 二次型的标准形 标准形的矩阵式 标准化问题 合同对角化 二次型标准化分析 二次型可标准化定理 正交相似角度证明 配方角度证明 case1 方法1 case2 方法2 case2 case3 二次型的标准形 如果二次型只含有变量的平
  • Kerberos安全认证-连载12-Kafka Kerberos安全配置及访问

    目录 1 Kafka配置Kerberos 2 客户端操作Kafka 3 Java API操作Kafka 4 StructuredStreaming操作Kafka 5 Flink 操作Kafka 技术连载系列 前面内容请参考前面连载11内容
  • Dictionary的基本用法

    1 创建泛型哈希表 然后加入元素 Dictionary
  • 宋分题——Java实现登录窗口 和 信息录入窗口

    编写一个登录窗口 密码输入采用密码框 输入密码显示为 当输入用户名admin密码123的时候点击确定跳转到学生信息录入窗口界面 其他输入显示用户名密码错误 点击取消退出运行 import java awt import java awt e
  • RANSAC基本原理

    计算机视觉基本原理 RANSAC 1 RANSAC简介 2 基本思想 3 范例 4 迭代次数推导 Reference 1 计算机视觉基本原理 RANSAC 1 RANSAC简介 RANSAC RAndom SAmple Consensus
  • Ubuntu 怎么开放端口

    要在 Ubuntu 中开放端口 需要使用 ufw 防火墙 首先 确保 ufw 已经安装 如果尚未安装 可以使用以下命令进行安装 sudo apt get install ufw 然后 使用以下命令开启 ufw 防火墙 sudo ufwena
  • 玩转代码

    前言 在面试的时候 经常会遇到一道经典的面试题 如何优化网页加载速度 常规的回答中总会有一条 把 css 文件放在页面顶部 把 js 文件放在页面底部 那么 为什么要把 js 文件放在页面的最底部呢 我们先来看下这段代码
  • Android 字体加载

    1 Font配置文件 位于frameworks base data fonts system fonts xml fallback fonts xml 文件结构
  • 【LVM技术创建磁盘和磁盘配额】

    文章目录 一 知识点 二 实验 1 创建物理卷 2 卷组打包命名形成逻辑硬盘 3 创建逻辑卷 4 格式化 创建文件系统 5 挂载 三 扩容逻辑卷 四 给卷组继续添加空间 五 磁盘配额 一 知识点 LVM技术特点 1 打破分区只能单个挂载 单
  • Ubuntu下分别用gcc和makefile编译C语言

    Ubuntu下分别用gcc和makefile编译C语言 1 编写C文件 2 gcc编译C文件 3 makefile编译C文件 3 1 创建makefile文件 3 2 编译makefile文件 4 总结 在Windows环境下通过虚拟机软件
  • RuntimeError: cuDNN error: CUDNN_STATUS_NOT_INITIALIZED

    问题 调用显卡时 出现RuntimeError cuDNN error CUDNN STATUS NOT INITIALIZED 问题分析 出现这种问题 一般是因为cuda cudnn 显卡驱动 torch版本不匹配造成的 解决 1 第一个
  • 【C++】IO库 : IO类,文件输入输出,string流

    前面已经在用的IO库设施 istream 输入流类型 提供输入操作 ostream 输出流类型 提供输出操作 cin 一个istream对象 从标准输入读取数据 cout 一个ostream对象 向标准输出写入数据 cerr 一个ostre
  • 为啥要三次握手,四次挥手?

    三次握手的目的是 为了防止已经失效的连接请求报文段突然又传到服务端 因而产生错误 客户端发出的第一个连接请求报文段并没有丢失 而是在某个网络结点长时间的滞留了 以致延误到连接释放以后的某个时间才到达服务器 本来这是一个早已失效的报文段 但服
  • BUUCTF[极客大挑战 2019]RCE ME

  • Qt报错undefine reference to vtable for ...解决办法

    删除编译的debug和release文件 重新编译 解决了 多方便
  • 在变量声明中指定类型

    1 内置类型 C 提供了一组标准的内置对象来表示整数 浮点数 布尔表达式 文本字符 十进制值和其他数据类型 还有内置的 string 和 object 类型 2 自定义类型 可以使用 struct class interface enum