.NET 帮助

C# 数据类型(开发人员工作原理)

在使用像 C# 这样的编程语言时,了解数据类型至关重要。 就像在现实世界中,我们有各种容器来存放不同类型的物品,在编程中,我们使用数据类型来指定我们存储的数据类型。 简单来说,数据类型指定了存储在内存位置中的实际数据类型

什么是数据类型?

在 C# 中,数据类型可以理解为我们在程序中存储数据的分类。 这些分类有助于确保以正确的方式存储正确类型的数据。 就像选择正确的罐子来存放饼干或香料一样; 该 jar 经过定制,以确保其内容的安全性和可访问性。

数据类型主要有两大类:

  1. 值数据类型:它们存储实际数据。 值类型存储在内存的堆栈区域,其默认值根据类型设置。 值类型的示例包括int类型,它将整数存储为值。

  2. 引用数据类型:它们并不包含存储在变量中的实际数据,而是包含对数据内存位置的引用。 实际的引用类型驻留在内存的堆区域,并且具有默认值null

数据类型为何重要?

理解数据类型就如同理解 C# 的构件。 就像在 C 语言中,C# 中的数据类型确保:

  • 分配适量内存。
  • 实际数据得以高效存储。
  • 数据安全检索,无任何丢失或误读。

预定义数据类型

预定义数据类型(也称为内置数据类型)是使我们能够在程序中执行各种操作和存储各种形式数据的重要组件。 它们是 C# 的基础,因为它们提供了创建可以存储值的变量的方法。

数字类型

整数类型

这些值类型用于存储正负整数。它们又分为

  • Int 数据类型(int 类型):表示 32 位有符号整数。
  • Short 数据类型:表示16位有符号整数。
  • Long 数据类型:表示 64 位有符号整数。
  • Byte 数据类型:表示 8 位无符号整数。
  • Sbyte 数据类型:表示8位有符号整数,允许负数。
int number = 100;
short smallNumber = 200;
long largeNumber = 300L;
byte positiveNumber = 255;
sbyte negativeNumber = -100;
int number = 100;
short smallNumber = 200;
long largeNumber = 300L;
byte positiveNumber = 255;
sbyte negativeNumber = -100;
Dim number As Integer = 100
Dim smallNumber As Short = 200
Dim largeNumber As Long = 300L
Dim positiveNumber As Byte = 255
Dim negativeNumber As SByte = -100
$vbLabelText   $csharpLabel

浮点类型

这些值类型包括带小数点的数字或浮点数。

  • 浮点类型:表示单精度浮点类型。 适用于不需要完全双精度的数值。
  • Double 类型:表示双精度浮点类型。 它允许比浮动更精确的翻译。
float floatValue = 10.5f;
double doubleValue = 20.55;
float floatValue = 10.5f;
double doubleValue = 20.55;
Dim floatValue As Single = 10.5F
Dim doubleValue As Double = 20.55
$vbLabelText   $csharpLabel

十进制类型

十进制类型专为金融和货币计算而设计,具有 28 位精度,非常适合需要高精度的计算。

decimal money = 100.50m;
decimal money = 100.50m;
Dim money As Decimal = 100.50D
$vbLabelText   $csharpLabel

文本类型

字符数据类型(char 类型)

用于存储单个字符,如字母、数字或特殊字符。

char letter = 'A';
char letter = 'A';
Dim letter As Char = "A"c
$vbLabelText   $csharpLabel

字符串数据类型(字符串类型)

C# 中的字符串数据类型表示字符序列。 它基于String,非常多才多艺。

string name = "John";
string name = "John";
Dim name As String = "John"
$vbLabelText   $csharpLabel

其他预定义类型

Bool 数据类型

表示布尔值,可以是truefalse

bool isTrue = true;
bool isTrue = true;
Dim isTrue As Boolean = True
$vbLabelText   $csharpLabel

对象类型

所有其他类型的终极基类。它可以指代任何其他类型的对象。

object obj = "This is a string";
object obj = "This is a string";
Dim obj As Object = "This is a string"
$vbLabelText   $csharpLabel

动态类型

绕过编译时类型检查的类型。 译文在运行时确定,灵活性较高,但安全性较低。

dynamic anything = 10;
dynamic anything = 10;
'INSTANT VB NOTE: 'Option Strict Off' is used here since dynamic typing is used:
Option Strict Off

'INSTANT VB NOTE: In the following line, Instant VB substituted 'Object' for 'dynamic' - this will work in VB with Option Strict Off:
Dim anything As Object = 10
$vbLabelText   $csharpLabel

预定义参考类型

除上述值类型外,还有预定义的参考类型,包括

  • 类类型:定义对象的蓝图。
  • 接口类型:定义类可以实现的契约。
  • 数组类型:支持创建数组,即同类型项目的集合。

内置转换

C#还提供了不同预定义数据类型之间的内置转换。例如,您可以将int转换为float而不会丢失信息。

默认值

每种值数据类型都有一个默认值,如果没有给定值,就会分配一个默认值。 例如,bool数据类型的默认值是false,而对于引用类型,它是null

用户定义数据类型在C#中

除了预定义类型外,C# 还提供了定义我们的数据类型的灵活性,即所谓的用户自定义类型。这些用户自定义类型由程序员创建和定义,以创建适合其特定需求的结构。 其中包括

结构类型

适用于小型数据结构。 它允许您将不同的数据类型归类到一个变量名下。 可以用 C# 定义如下

public struct Point {
    public int X;
    public int Y;
}
public struct Point {
    public int X;
    public int Y;
}
Public Structure Point
	Public X As Integer
	Public Y As Integer
End Structure
$vbLabelText   $csharpLabel

枚举类型

枚举是一组命名的常量,代表基本的积分值。

enum Days { Sun, Mon, Tue, Wed, Thu, Fri, Sat };
enum Days { Sun, Mon, Tue, Wed, Thu, Fri, Sat };
Friend Enum Days
	Sun
	Mon
	Tue
	Wed
	Thu
	Fri
	Sat
End Enum
$vbLabelText   $csharpLabel

用户定义的参考类型

类类型、接口类型、数组类型和委托类型:这些是引用类型,更高级但同样重要。

  • 类类型:允许您将数据和方法封装在一个单元中。
  • 接口类型:它们定义了一个类类型必须实现的一组方法。 这就好比是如何构建类类型的指南。
  • 数组类型:一种数据结构,用于存储相同数据类型的固定大小元素集合。
  • 委托类型:一种表示对方法引用的类型。

指针数据类型

虽然 C# 是一种高级语言,通常将内存管理抽象化,但它确实为需要直接内存地址操作的特定任务提供指针数据类型。 不过,您需要使用不安全代码块来使用指针数据类型。

unsafe
{
    int var = 10;
    int* p = &var;  // Address operator to get memory address
}
unsafe
{
    int var = 10;
    int* p = &var;  // Address operator to get memory address
}
'INSTANT VB TODO TASK: C# 'unsafe' code is not converted by Instant VB:
'unsafe
'{
'	int var = 10;
'	int* p = &var; ' Address operator to get memory address
'}
$vbLabelText   $csharpLabel

表格概述

为了提供简要概述,下表列出了一些主要的值和引用数据类型及使用示例:

C# 数据类型 (开发者指南) 图 1 - 数据类型表

介绍 Iron Suite 助力 C

虽然了解 C# 中的数据类型为稳健编程奠定了基础,但结合强大的工具可以显著改善您的编码体验。 Iron Suite 就是这些工具中的一个例子,它专为开发人员设计,旨在增强您的能力、加快开发流程并简化复杂的任务。

IronPDF 您的 PDF 操作解决方案

用于 C# 的 IronPDF 工具进行 PDF 操作 是在您的 C# 项目中处理 PDF 文件时不可或缺的工具。 该工具可从 HTML、图像和 ASPX 网页表单生成 PDF。 这可以被视为类似于在 C# 中处理字符串数据类型。

IronPDF 是一个非常出色的工具,可以将网页、URL 和 HTML 转换为与原始文件完全相同的 PDF。 这非常适合生成在线内容的PDF,例如报告和发票。 因此,如果你需要从网页制作PDF,IronPDF是最佳选择!

using IronPdf;

class Program
{
    static void Main(string[] args)
    {
        var renderer = new ChromePdfRenderer();

        // 1. Convert HTML String to PDF
        var htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a PDF from an HTML string.</p>";
        var pdfFromHtmlString = renderer.RenderHtmlAsPdf(htmlContent);
        pdfFromHtmlString.SaveAs("HTMLStringToPDF.pdf");

        // 2. Convert HTML File to PDF
        var htmlFilePath = "path_to_your_html_file.html"; // Specify the path to your HTML file
        var pdfFromHtmlFile = renderer.RenderHtmlFileAsPdf(htmlFilePath);
        pdfFromHtmlFile.SaveAs("HTMLFileToPDF.pdf");

        // 3. Convert URL to PDF
        var url = "http://ironpdf.com"; // Specify the URL
        var pdfFromUrl = renderer.RenderUrlAsPdf(url);
        pdfFromUrl.SaveAs("URLToPDF.pdf");
    }
}
using IronPdf;

class Program
{
    static void Main(string[] args)
    {
        var renderer = new ChromePdfRenderer();

        // 1. Convert HTML String to PDF
        var htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a PDF from an HTML string.</p>";
        var pdfFromHtmlString = renderer.RenderHtmlAsPdf(htmlContent);
        pdfFromHtmlString.SaveAs("HTMLStringToPDF.pdf");

        // 2. Convert HTML File to PDF
        var htmlFilePath = "path_to_your_html_file.html"; // Specify the path to your HTML file
        var pdfFromHtmlFile = renderer.RenderHtmlFileAsPdf(htmlFilePath);
        pdfFromHtmlFile.SaveAs("HTMLFileToPDF.pdf");

        // 3. Convert URL to PDF
        var url = "http://ironpdf.com"; // Specify the URL
        var pdfFromUrl = renderer.RenderUrlAsPdf(url);
        pdfFromUrl.SaveAs("URLToPDF.pdf");
    }
}
Imports IronPdf

Friend Class Program
	Shared Sub Main(ByVal args() As String)
		Dim renderer = New ChromePdfRenderer()

		' 1. Convert HTML String to PDF
		Dim htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a PDF from an HTML string.</p>"
		Dim pdfFromHtmlString = renderer.RenderHtmlAsPdf(htmlContent)
		pdfFromHtmlString.SaveAs("HTMLStringToPDF.pdf")

		' 2. Convert HTML File to PDF
		Dim htmlFilePath = "path_to_your_html_file.html" ' Specify the path to your HTML file
		Dim pdfFromHtmlFile = renderer.RenderHtmlFileAsPdf(htmlFilePath)
		pdfFromHtmlFile.SaveAs("HTMLFileToPDF.pdf")

		' 3. Convert URL to PDF
		Dim url = "http://ironpdf.com" ' Specify the URL
		Dim pdfFromUrl = renderer.RenderUrlAsPdf(url)
		pdfFromUrl.SaveAs("URLToPDF.pdf")
	End Sub
End Class
$vbLabelText   $csharpLabel

IronXL.Excel 操作简易版

如果没有合适的工具,用 C# 处理 Excel 文件可能会令人望而生畏。 这是IronXL Excel Library for C#发挥作用的地方。 IronXL 允许开发人员读取、编写和创建 Excel 电子表格,而无需进行 Interop。有了 IronXL,处理 Excel 数据就像在 C# 中操作整数或浮点数一样直观。

IronOCR 轻松将图像转化为代码

在您的应用程序中整合光学字符识别 (OCR) 需要一个功能强大且精确的工具。 IronOCR 藏书在 C# 中进行 OCR 任务 正是提供了这样的功能。 使用 IronOCR,您可以读取图像、扫描文档或 PDF 中的文本和 BarCode,将其转化为可操作的数据。 它消除了手动数据录入和潜在错误,提供了一种将内容数字化的简化方法。

IronBarcode 改变您处理条形码的方式

条形码无处不在,能够在 C# 应用程序中生成或读取条形码对许多行业都至关重要。 IronBarcode for Barcode Processing in C# 提供了满足您所有条码需求的综合套件。 无论您是为产品创建条形码、扫描条形码进行数据检索,还是将条形码与库存系统集成,IronBarcode 都能为您提供帮助。

结论

Iron Suite 拥有一系列功能强大的工具,包括 IronPDF、IronXL、IronOCR 和 IronBarcode,对于任何 C# 开发人员来说都是一笔宝贵的财富,就像 C# 中预定义的数据类型一样。

更吸引人的是,Iron Suite 中的每个产品都提供Iron Software Tools 的免费试用版,让您无需立即投资即可探索和体验这些工具。 如果您发现它们对您的项目至关重要,许可证价格仅从$749开始。 在一项独家优惠中,您只需花两个单个工具的价格就可以购买全套 Iron Suite。

Chipego
软件工程师
Chipego 拥有出色的倾听技巧,这帮助他理解客户问题并提供智能解决方案。他在 2023 年加入 Iron Software 团队,此前他获得了信息技术学士学位。IronPDF 和 IronOCR 是 Chipego 主要专注的两个产品,但他对所有产品的了解每天都在增长,因为他不断找到支持客户的新方法。他喜欢 Iron Software 的合作氛围,公司各地的团队成员贡献他们丰富的经验,以提供有效的创新解决方案。当 Chipego 离开办公桌时,你经常可以发现他在看书或踢足球。
< 前一页
C# AS(开发人员是如何工作的)
下一步 >
C# 真或假(开发人员如何使用)