.NET 帮助

C# 类型(如何为开发人员工作)

在任何编程语言中,了解数据类型都是至关重要的,C#也不例外。 无论是int类型还是浮点类型,每种类型都保存特定种类的信息,也称为实际数据。

C# 基础知识

C# 是一种强类型语言。 您可能会问,什么是强类型语言? 这意味着每个变量和对象都必须有一个声明的数据类型。 并且数据类型决定了您可以在该变量中存储什么类型的数据。

C# 有两种主要的数据类型:值类型和引用类型。这些也是您可能听到的用户定义类型。

C# 中的值类型

在C#中,值类型是简单的。 当您声明一个值类型变量时,存储的实际数据是您分配给该变量的值。 如果您更改一个变量的值,它不会影响任何其他变量。

C# 中最常见的值类型包括

  • 整数(由int类型表示)
  • 浮点数(由“float 和 double 类型”表示)
  • 布尔值,要么为真,要么为假。

    我们先讨论int类型。C#中的int类型是一个32位的数据类型,可存储范围从-2,147,483,648到2,147,483,647的整数。下面是一个例子:

int myInteger = 15;
int myInteger = 15;
Dim myInteger As Integer = 15
$vbLabelText   $csharpLabel

现在,谈到浮点类型。 在 C# 中,有两种浮点类型:floatdouble

float 类型是一个32位的浮点数,精度可达7位数字。 它非常适合科学计算。 可以这样声明一个float类型的变量:

float myFloat = 12.34F;
float myFloat = 12.34F;
Dim myFloat As Single = 12.34F
$vbLabelText   $csharpLabel

double 类型是一个具有 64 位浮点类型,精度可达 15 到 16 位数字。 它比float类型更精确,通常用于财务和货币计算。 这是一个double类型变量的示例:

double myDouble = 12.3456789;
double myDouble = 12.3456789;
Dim myDouble As Double = 12.3456789
$vbLabelText   $csharpLabel

C# 预定义数据类型

好的,继续。 C# 提供了多种“预定义数据类型”,可供在您的应用程序中使用。 这些是用于定义“用户自定义类型”的基本构建块。

下面是几个例子:

  • byte:这是一种8位无符号整数,范围从0到255。
  • char:它是一个16位的Unicode字符。
  • decimal:由于其高精度,非常适合用于“财务和货币计算”。
  • bool:存储“true”或“false”,非常适合逻辑操作。

    每种“预定义数据类型”都有其特定用途和“默认值”,因此选择适合您需求的数据类型非常重要!

C#中的默认值

在C#中,每种数据类型都有一个默认值。 对于值类型变量,如果不初始化,它们会自动采用默认值。

例如,int 类型的默认值是 0,浮点值类型(float 或 double)的默认值是 0.0。

引用类型的默认值是null,表示它没有引用任何对象。

C# 中的类型转换

有时,您可能需要将一种数据类型转换为另一种。 这被称为类型转换,C#支持两种转换:隐式转换和显式转换。

当您将一种类型的值分配给可以容纳更大值的兼容类型的变量时,隐式转换会自动发生。 例如,您可以将int类型赋值给double类型而不会丢失信息。

int myInt = 10;
double myDouble = myInt;                // Implicit conversion
int myInt = 10;
double myDouble = myInt;                // Implicit conversion
Dim myInt As Integer = 10
Dim myDouble As Double = myInt ' Implicit conversion
$vbLabelText   $csharpLabel

显式转换,也称为强制转换,当你尝试在不兼容的类型之间进行转换,或从较大类型转换为较小类型时是必需的。 通过在要转换的值前面加上括号中的目标类型来完成。

double myDouble = 10.5; 
int myInt = (int)myDouble;              // Explicit conversion, decimal part is lost
double myDouble = 10.5; 
int myInt = (int)myDouble;              // Explicit conversion, decimal part is lost
Imports System

Dim myDouble As Double = 10.5
Dim myInt As Integer = CInt(Math.Truncate(myDouble)) ' Explicit conversion, decimal part is lost
$vbLabelText   $csharpLabel

引用类型在C#中

在 C# 中,引用类型的工作方式与值类型有所不同。引用类型变量不是存储实际数据,而是存储值所在地址。 换句话说,它“引用”了内存中的另一个位置。

因此,如果更改引用类型对象,也会影响另一个变量。 这是因为引用类型变量会自动反映对其指向的内存地址中存储的实际数据所做的更改。

现在,这可能听起来有些复杂,但让我们通过一个例子来分解一下。 假设我们有一个名为Person的类:

class Person
{
    public string Name { get; set; }
}
class Person
{
    public string Name { get; set; }
}
Friend Class Person
	Public Property Name() As String
End Class
$vbLabelText   $csharpLabel

然后,我们为该类创建两个 "引用类型 "变量:

Person person1 = new Person { Name = "Alice" };
Person person2 = person1;
Person person1 = new Person { Name = "Alice" };
Person person2 = person1;
Dim person1 As New Person With {.Name = "Alice"}
Dim person2 As Person = person1
$vbLabelText   $csharpLabel

在这里,person1person2 都指向相同的内存位置。 如果我们更改person1person2 将反映该更改:

person1.Name = "Bob"; 
Console.WriteLine(person2.Name);                // Outputs "Bob"
person1.Name = "Bob"; 
Console.WriteLine(person2.Name);                // Outputs "Bob"
person1.Name = "Bob"
Console.WriteLine(person2.Name) ' Outputs "Bob"
$vbLabelText   $csharpLabel

C# 中的数组

数组是一种引用类型,能够存储多个相同数据类型的值。 它就像一个容器,可以存储一组值,所有值都是相同类型。

要声明一个数组,首先指定其元素的数据类型,然后跟上方括号。 然后你使用new关键字来创建数组并指定其长度。

int [] myIntArray = new int [5];                 // Array of int type, can hold 5 values
int [] myIntArray = new int [5];                 // Array of int type, can hold 5 values
Dim myIntArray(4) As Integer ' Array of int type, can hold 5 values
$vbLabelText   $csharpLabel

要访问数组中的元素,需要使用索引,第一个元素从 0 开始。

myIntArray [0] = 10;                           // Sets the first element of the array to 10
myIntArray [0] = 10;                           // Sets the first element of the array to 10
myIntArray (0) = 10 ' Sets the first element of the array to 10
$vbLabelText   $csharpLabel

请记住,C# 中的数组是 "引用类型",因此对一个变量所做的更改会影响引用同一数组的任何 "其他变量"。

使用 IronPDF 在 C# 中生成 PDF文件

IronPDF 是用于 C# 的强大库,允许开发人员创建、编辑和提取 PDF 的内容。 这对于生成报告或创建动态发票等任务而言可能是一个救星。

IronPDF 入门

首先,您需要安装 IronPDF。 您可以通过 NuGet,这是一种流行的 .NET 包管理器,来实现这一点。 在包管理器控制台中运行以下命令:

Install-Package IronPdf

从HTML创建PDF

IronPDF能够从HTML创建PDF。 这很简单:

using IronPdf;
var Renderer = new ChromePdfRenderer();
Renderer.RenderHtmlAsPdf("<h1>Hello, World!</h1>").SaveAs("HelloWorld.pdf");
using IronPdf;
var Renderer = new ChromePdfRenderer();
Renderer.RenderHtmlAsPdf("<h1>Hello, World!</h1>").SaveAs("HelloWorld.pdf");
Imports IronPdf
Private Renderer = New ChromePdfRenderer()
Renderer.RenderHtmlAsPdf("<h1>Hello, World!</h1>").SaveAs("HelloWorld.pdf")
$vbLabelText   $csharpLabel

上述代码将生成一个带有“Hello, World!”标题的PDF。 请注意,HTML代码只是一个字符串。 在C#中,字符串是一种引用类型,是C#中使用最频繁的类型之一。

C# 类型(开发人员如何工作)图 1 - Hello World 文本

结论

恭喜! 您深入研究了C#类型的世界,了解值类型、引用类型、预定义数据类型以及它们如何影响您编写代码的方式。 您还看到了使用诸如IronPDF这样的库的强大功能,以及您对C#的掌握程度。

IronPDF 提供免费试用,IronPDF 的许可证价格从$liteLicensing起。

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