C# 类型

原文:C# 类型_w3cschool

C#类型

类型定义值的蓝图。有不同的操作与不同类型相关联。

在下面的示例中,我们使用两个类型为int的常量,值为 3


static void Main() {int x = 2 * 3;Console.WriteLine (x); 
} 

int 是一个表示整数值的构建类型。

C#也定义类型,如long,string,byte ...

变量

我们在上面的代码中声明了一个类型为 int 的变量,其名称为 x 

变量表示可以包含不同值的内存位置。我们可以为变量赋予不同的值。

相反,常数总是表示相同的值:


const int y = 6; 

相反,常数总是表示相同的值:

C#中的所有值都是类型的实例。

预定义类型示例

预定义类型是编译器支持的类型。

上面示例中的int类型是用于表示整数集合的预定义类型,从-231到231-1。

我们可以执行函数,如与int类型的实例的算术如下:


int x = 2 * 3; 

C#有其他类型。C#type string 表示一个序列字符,如“.NET"。

我们可以通过调用函数来处理字符串,如下所示:


string message = "Hello world"; 
string upperMessage = message.ToUpper(); 
Console.WriteLine (upperMessage); 

上面的代码生成以下结果。
 


int x = 2; 
message = message + x.ToString(); 
Console.WriteLine (message); 

上面的代码生成以下结果。


 

值类型与引用类型

所有C#类型分为以下类别:

  • 值类型
  • 引用类型
  • 通用类型参数
  • 指针类型

值类型包括大多数内置类型,例如,int,long,bool以及自定义结构和枚举类型。

引用类型包括所有类,数组,委托和接口类型。它还包括预定义的 string 类型。

值类型

值类型变量或常量的内容是一个值。

我们可以使用 struct 关键字定义一个自定义值类型:


public struct Point { public int X, Y; 
} 

值类型实例的分配始终会复制实例。

例如:


static void Main() { Point p1 = new Point(); p1.X = 1;Point p2 = p1; // Assignment causes copyConsole.WriteLine (p1.X); // 1 Console.WriteLine (p2.X); // 1p1.X = 2; // Change p1.XConsole.WriteLine (p1.X); // 2 Console.WriteLine (p2.X); // 1 
} 

引用类型

引用类型有两部分:一个对象和对该对象的引用。

引用类型变量的内容是对包含该值的对象的引用。

这里是作为类重写的Point类型:


public class Point { public int X, Y; 
} 

分配引用类型变量会复制引用,而不是对象实例。

这允许多个变量引用同一个对象。


static void Main() { Point p1 = new Point(); p1.X = 1;Point p2 = p1; // Copies p1 referenceConsole.WriteLine (p1.X); // 1 Console.WriteLine (p2.X); // 1p1.X = 2; // Change p1.XConsole.WriteLine (p1.X); // 2 Console.WriteLine (p2.X); // 2 
} 

空值

一个引用可以分配常量null,表示引用指向没有对象:


class Point {...} Point p = null; 
Console.WriteLine (p == null); // True 

值类型通常不能为null值:

预定义类型分类法

C#中的预定义类型有:

  • 值类型
    • 数字
    • 有符号整数 (sbyte, short, int, long)
    • 无符号整数 (byte, ushort, uint, ulong)
    • 实数 (float, double, decimal)
    • 逻辑 (bool)
    • 字符 (char)
  • 引用类型
    • String (string)
    • Object (object)

C#别名中的预定义类型System命名空间中的框架类型。

这两个语句之间只有语法上的区别:


int i = 5; 
System.Int32 i = 5; 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/pingmian/91848.shtml
繁体地址,请注明出处:http://hk.pswp.cn/pingmian/91848.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

确保TDesign Vue Next中t-color-picker组件在弹出颜色拾取面板时保证该面板不抖动方法参考

使用TDesign Vue Next中的组件t-color-picker时,在颜色面板弹出后,如果修改里面的颜色,发现这个颜色拾取面板会随着颜色的改变位置不断抖动,该问题由显示颜色的数值文本的长度变化引起,因此要覆盖组件内部颜色值文本的…

bypass

代码解析修改自身bypass&#xff1a;第一句话$s"Declaring file object\n";定义一个s&#xff0c;值为Declaring file object第二句话$d$_SERVER[DOCUMENT_ROOT].$_SERVER[DOCUMENT_URI]; 不知道$_SERVER是什么&#xff0c;那就打印出来看看。输入echo <pre>;…

C语言:构造类型学习

内容提要 构造类型 枚举类型typedef 综合案例&#xff1a;斗地主 构造类型 枚举类型 建议&#xff1a;如果定义不相干的常理&#xff0c;使用宏定义&#xff08;符号常量&#xff09;&#xff1b;如果需要定义一组相关联的常量&#xff0c;如月份0~11&#xff0c;星期0~6&#…

Prometheus-3--Prometheus是怎么抓取Java应用,Redis中间件,服务器环境的指标的?

1、Prometheus抓取Java应用的指标 1、数据来源&#xff1a;Java应用自身暴露的指标 Java应用的指标数据来源于应用代码中定义的指标对象&#xff08;如Counter、Gauge、Histogram等&#xff09;&#xff0c;通过Prometheus客户端库&#xff08;如io.prometheus:client_java&…

42.安卓逆向2-补环境-unidbg安装和简单使用

免责声明&#xff1a;内容仅供学习参考&#xff0c;请合法利用知识&#xff0c;禁止进行违法犯罪活动&#xff01; 内容参考于&#xff1a;图灵Python学院 工具下载&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/1bb8NhJc9eTuLzQr39lF55Q?pwdzy89 提取码&#xff1…

数据结构与算法:哈希函数的应用及一些工程算法

前言这篇里的东西可以说了解了解就行了。一、哈希函数均匀性展示原本让deepseek转了一下老师的java代码&#xff0c;但发现复刻起来太麻烦了。又因为这个理解就好&#xff0c;竞赛不会有&#xff0c;所以就直接贴老师的java代码了……import java.security.MessageDigest; impo…

交叉编译ARM环境

ARM交叉编译 可以采用交叉编译工具链&#xff1a; sudo apt-get install aarch64-linux-gnu-gcc sudo apt-get install aarch64-linux-gnu-g sudo apt-get install gcc-arm-linux-gnueabi sudo apt-get install g-arm-linux-gnueabi 上面两个是64位&#xff0c;下面两个是…

算法思想 之 拓扑排序问题

欢迎拜访&#xff1a;雾里看山-CSDN博客 本篇主题&#xff1a;算法思想 之 拓扑排序问题 发布时间&#xff1a;2025.8.4 隶属专栏&#xff1a;算法 目录算法介绍核心原理适用场景实现步骤(Kahn 算法)例题课程表题目链接题目描述算法思路代码实现课程表 II题目链接题目描述算法思…

机器学习 入门——决策树分类

决策树是一种直观且强大的机器学习算法&#xff0c;适用于分类和回归任务。本文将全面介绍决策树分类的原理、实现、调优和实际应用。一、什么是决策树分类1.概念决策树分类是一种树形结构的分类模型&#xff0c;它通过递归地将数据集分割成更小的子集来构建决策规则。就像我们…

虚拟机中查看和修改文件权限

在虚拟机中管理文件权限是系统管理的重要部分&#xff0c;无论是在Linux还是Windows虚拟机中。下面我将详细介绍两种主要系统的权限管理方法。Linux虚拟机中的文件权限管理查看文件权限使用ls命令&#xff1a;ls -l 文件名输出示例&#xff1a;-rwxr-xr-- 1 user group 1024 Ju…

图像处理拉普拉斯算子

AI对话记录&#xff0c;还没有来得及仔细验证和推导&#xff0c;目前只是记录 当然可以&#xff01;我们来一步步推导拉普拉斯算子在旋转变换下保持不变的数学过程。这里以二维情况为例&#xff0c;最直观也最常见。&#x1f9ee; 拉普拉斯算子旋转不变性的推导&#xff08;二维…

React ahooks——副作用类hooks之useThrottleEffect

useThrottleEffect 是 ahooks 提供的节流版 useEffect&#xff0c;它在依赖项变化时执行副作用函数&#xff0c;但会限制执行频率。一、基本语法useThrottleEffect(effect: React.EffectCallback,deps?: React.DependencyList,options?: Options )二、参数详解2.1. effect (必…

【建模与仿真】融合画像约束和潜在特征的深度推荐算法

导读&#xff1a; 基于深度学习的推荐算法已成为推荐系统领域的研究趋势。然而&#xff0c;大多数现有工作仅考虑单一的用户与物品交互数据&#xff0c;限制了算法的预测性能。本文提出一种画像约束的编码方式&#xff0c;并融合隐因子模型中的潜在特征&#xff0c;丰富了推荐…

华为网路设备学习-26(BGP协议 二)路径属性

一、属性分类二、属性含义①公认必遵&#xff1a;所有BGP对等体 必须识别 且 在Update报文中携带1.Origin2.AS-Path3.Next hop②公认自决&#xff1a;所有BGP对等体 必须识别但可以不在Update报文中携带 1.Local-Preference2.ATOMIC_Aggregate③可选传递&#xff1a;所有BGP对…

从0搭建YOLO目标检测系统:实战项目+完整流程+界面开发(附源码)

文章目录一、前言二、专栏介绍三、已有系统介绍3.0 基于yolo通用目标检测系统&#xff08;手把手教你修改成为自己的检测系统&#xff09;3.1 基于yolov8柑橘检测系统3.2 基于yolov8舰船检测系统3.3 基于yolo11人脸检测系统3.4 基于yolov8无人机影像光伏板缺陷检测系统一、前言…

【测试】自动化测试工具基础知识及基本应用

下面详细介绍一些常用的自动化测试工具及其基本概念&#xff0c;并提供具体的示例代码&#xff0c;帮助你更好地理解和应用这些工具。1. 自动化测试的基本概念自动化测试是通过软件程序自动执行测试用例的过程。与手动测试相比&#xff0c;自动化测试能够提高测试效率、减少人为…

ArcGIS的字段计算器生成随机数

在ArcGIS的字段计算器中使用Python脚本生成0-100的随机数&#xff0c;可以按照以下步骤操作&#xff1a; 打开属性表&#xff0c;选择要计算的字段打开字段计算器选择"Python"解析器勾选"显示代码块"在"预逻辑脚本代码"中输入以下代码在下方表达…

【前端:Html】--1.1.基础语法

目录 1.HTML--简介 2.HTML--编译器 步骤一:启动记事本 步骤二:用记事本来编辑 HTML 步骤三:保存 HTML 步骤四:在浏览器中运行 HTML 3.HTML--基础 3.1.HTML声明--!DOCTYPE 3.2.HTML 标题--h1 3.3.HTML 段落--p 3.3.1. 水平线--hr 3.3.2.换行符--br 3.3.3.固定格式…

FreeSWITCH 简单图形化界面46 - 收集打包的一些ASR服务

FreeSWITCH 简单图形化界面46 - 收集打包的一些ASR服务 0、一个fs的web配置界面预览1、docker地址2、使用2.1 下载2.2 运行 3、例子3.1 下载3.2 启动3.3 编译mod_audio_fork或者mod_audio_stream模块使用3.4 编写呼叫路由和呼叫脚本呼叫路由呼叫脚本 3.5 esl捕获识别结果3.6 其…

20250805问答课题-实现TextRank + 问题分类

textRank的工具包实现其他可能的实现方法&#xff0c;对比结果查找分类的相关算法 目录 1. 关键词提取TF-IDF TextRank 1.1. TF-IDF算法 1.2. TextRank算法 1.3. 双算法提取关键词 2. 问题分类 2.1. 预处理 2.2. 获取BERT向量 2.3. 一级标签预测 2.4. 二级标签预测 3…