当前位置: 首页 > news >正文

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.lryc.cn/news/610236.html

相关文章:

  • Python-初学openCV——图像预处理(七)——模板匹配、霍夫变换
  • 专题:2025生命科学与生物制药全景报告:产业图谱、投资方向及策略洞察|附130+份报告PDF、原数据表汇总下载
  • idea添加gitlab访问令牌
  • Docker-07.Docker基础-数据卷挂载
  • leetcode_11 盛最多水的容器
  • C++ stdset 与 stdmultiset 深度比较
  • pathspec ‘with_def_layout‘ did not match any file(s) known to git`
  • jenkins+gitlab自动发布系统
  • IntelliJIDEA上传GitHub全攻略
  • JVM学习专题(四)对象创建过程
  • 数据结构:如何判断一个链表中是否存在环(Check for LOOP in Linked List)
  • IDM(Internet Download Manager)是什么?它有什么作用
  • 微帧GPU视频硬编优化引擎:面向人工智能大时代的AI算法与硬编协同优化方案
  • C语言实现Elasticsearch增删改查API
  • 部署 Kibana 8.2.2 可视化管理 Elasticsearch 8.2.2 集群
  • 解决 PS暂存盘已满的五种方法
  • PSOFT Pencil+ 4.25 插件安装教程(适用于 3ds Max 2022-2025)
  • 【c51单片机利用p2口,外接八个流水灯实现流水灯效果1.3.5.7.2.4.6.8亮】2022-10-9
  • MinIO 服务日志与监控实战:日志配置、Webhook、事件通知、Prometheus+Grafana 可视化全流程指南
  • AI 编程学习网站分享:vibe-coding-tutorial
  • SpringCloud相关知识
  • 【测试】⾃动化测试常⽤函数
  • 银河麒麟V10一键安装DM8的脚本及高阶运维SQL分享
  • 力扣-994.腐烂的橘子
  • RHCA02
  • 飞算JavaAI编程插件:以AI之力赋能Java开发,让编码效率再升级
  • 0基礎網站開發技術教學(三) --(後端PHP篇)-- [內有2025最新可用 phpstudy2018下載鏈接]
  • ShowDoc与Docmost对比分析:开源文档管理工具的选择指南
  • numpy基础知识2
  • 《P1462 通往奥格瑞玛的道路》