C#_07_官方文档_快速入门

本文档是C#的快速入门教程,涵盖数字运算、分支和循环控制流程、字符串内插、列表集合的操作以及类的简介。内容包括数字类型的运算、条件判断、循环结构、字符串格式化和列表的添加、删除、搜索及排序,以及银行帐户类的创建和交易处理。通过实例代码,逐步引导学习者掌握C#的基础知识和编程技巧。
摘要由CSDN通过智能技术生成

C#_官方文档_C#快速入门_篇章

文档地址: https://docs.microsoft.com/zh-cn/dotnet/csharp/quick-starts/index

IDE使用: Visual Studio For Mac

 

 

选取你的快速入门

可以从下列任一快速入门教程入手:

C# 中的数字

在 C# 中的数字快速入门教程中,将了解计算机如何存储数字,以及如何对不同类型的数字执行运算。 读者将学习四舍五入的基础知识,以及如何使用 C# 执行数学运算。

若要更好地学习本快速入门教程,需要先完成 Hello World 课程。

分支和循环

在分支和循环快速入门教程中,将了解根据变量中存储的值选择不同代码执行路径的基础知识。 读者将学习控制流的基础知识,这是程序决定选择不同操作的基本依据。

若要更好地学习本快速入门教程,需要先完成 Hello World 和 C# 中的数字课程。

字符串内插

字符串内插快速入门教程将介绍如何将值插入字符串。 你将学习如何创建带有嵌入式 C# 表达式的内插字符串,以及如何控制结果字符串中表达式结果的文本外观。

若要更好地学习本快速入门课程,需要先完成 Hello World、C# 中的数字和分支和循环课程。

列表集合

列表集合课程将介绍存储一系列数据的列表集合类型。 读者将学习如何添加和删除项、如何搜索项,以及如何对列表进行排序。 读者将探索各种列表。

若要更好地学习本快速入门教程,需要已完成上面列出的课程。

类简介

只能在计算机上使用自己的本地开发环境和 .NET Core 演练最后一个快速入门教程。 读者将生成控制台应用程序,并了解 C# 语言中面向对象的基本功能的工作原理。

 

 

 

“C# 中的数字”快速入门

本快速入门教程以交互方式介绍了 C# 中的数字类型。 你将编写少量的代码,然后编译并运行这些代码。本快速入门教程包含一系列课程,介绍了 C# 中的数字和数学操作。 这些课程介绍了 C# 语言的基础知识。

若要学习本快速入门教程,必须有开发计算机。 .NET 主题 10 分钟入门介绍了如何在 Mac、PC 或 Linux 上设置本地开发环境。 本地快速入门教程简介不仅简要概述了将用到的命令,还收录了详细信息链接。

探索整数数学运算

创建名为 numbers-quickstart 的目录。 

将新建的目录设为当前目录,并运行 dotnet new console -n NumbersInCSharp -o .

在常用编辑器中,打开 Program.cs,并将行 Console.Writeline("Hello Beyond!"); 替换为以下代码:

 

int a = 18;
int b = 6;
int c = a + b;
Console.WriteLine(c);

通过在命令窗口中键入 dotnet run 运行此代码。

刚刚看到的是一种基本的整数数学运算。 int 类型表示整数(正整数或负整数)。 使用 + 符号执行加法运算。 其他常见的整数数学运算包括:

  • -:减法运算
  • *:乘法运算
  • /:除法运算

首先,探索这些不同类型的运算。 在写入 c 值的行之后添加以下行:

 

c = a - b;
Console.WriteLine(c);
c = a * b;
Console.WriteLine(c);
c = a / b;
Console.WriteLine(c);

通过在命令窗口中键入 dotnet run 运行此代码。

如果愿意,也可以尝试在同一行中执行多个数学运算。 例如,请尝试 c = a + b - 12 * 17;。 允许混合使用变量和常数。

提示

在探索 C#(或任何编程语言)的过程中,可能会在编写代码时犯错。 编译器会发现并报告这些错误。如果输出中包含错误消息,请仔细比对示例代码和你的窗口中的代码,看看哪些需要纠正。 这样做有助于了解 C# 代码结构。

你已完成第一步。 开始进入下一部分前,先将当前代码移到单独的方法中。 这样一来,可以更轻松地开始处理新示例。 将 Main 方法重命名为 WorkingWithIntegers,并编写调用 WorkingWithIntegers 的新 Main 方法。 完成后,代码应如下所示:

 

using System;

namespace NumbersInCSharp
{
    class Program
    {
        static void WorkingWithIntegers()
        {
            int a = 18;
            int b = 6;
            int c = a + b;
            Console.WriteLine(c);
            c = a - b;
            Console.WriteLine(c);
            c = a * b;
            Console.WriteLine(c);
            c = a / b;
            Console.WriteLine(c);
        }

        static void Main(string[] args)
        {
            WorkingWithIntegers();
        }
    }
}

探索运算顺序

注释掉对 WorkingWithIntegers() 的调用。 在本节中,它会在你工作时使输出变得不那么杂乱:

 

//WorkingWithIntegers();

// 在 C# 中启动 注释。 注释是你想要保留在源代码中但不能作为代码执行的任何文本。 编译器不会从注释中生成任何可执行代码。

C# 语言使用与数学运算规则一致的规则,定义不同数学运算的优先级。 乘法和除法的优先级高于加法和减法。 将以下代码添加到 Main 方法,然后执行 dotnet run 进行探索:

 

int a = 5;
int b = 4;
int c = 2;
int d = a + b * c;
Console.WriteLine(d);

输出结果表明,乘法先于加法执行。

可以在要优先执行的一个或多个运算前后添加括号,从而强制改变运算顺序。 添加以下行并再次运行:

 

d = (a  + b) * c;
Console.WriteLine(d);

通过组合多个不同的运算,进一步探索运算顺序。 在 Main 方法底部添加类似以下行的内容。 重试 dotnet run

 

d = (a + b) - 6 * c + (12 * 4) / 3 + 12;
Console.WriteLine(d);

可能已注意到,整数有一个非常有趣的行为。 整数除法始终生成整数结果,即使预期结果有小数或分数部分也是如此。

如果你没有注意到此行为,请在 Main 方法结束时试运行以下代码:

 

int e = 7;
int f = 4;
int g = 3;
int h = (e  + f) / g;
Console.WriteLine(h);

再次键入 dotnet run,看看结果如何。

继续之前,让我们获取你在本节编写的所有代码并放在新的方法中。 调用新方法 OrderPrecedence。 最后应以与下面类似的代码结束:

 

using System;

namespace NumbersInCSharp
{
    class Program
    {
        static void WorkingWithIntegers()
        {
            int a = 18;
            int b = 6;
            int c = a + b;
            Console.WriteLine(c);
            c = a - b;
            Console.WriteLine(c);
            c = a * b;
            Console.WriteLine(c);
            c = a / b;
            Console.WriteLine(c);
        }

        static void OrderPrecedence()
        {   
            int a = 5;
            int b = 4;
            int c = 2;
            int d = a + b * c;
            Console.WriteLine(d);

            d = (a  + b) * c;
            Console.WriteLine(d);

            d = (a + b) - 6 * c + (12 * 4) / 3 + 12;
            Console.WriteLine(d);

            int e = 7;
            int f = 4;
            int g = 3;
            int h = (e  + f) / g;
            Console.WriteLine(h);
        }

        static void Main(string[] args)
        {
            WorkingWithIntegers();

            OrderPrecedence();

        }
    }
}

探索整数运算精度和限值

在上一个示例中,整数除法截断了结果。 可以使用取模运算符(即 % 字符)计算余数。 在 Main 方法中试用以下代码:

 

int a = 7;
int b = 4;
int c = 3;
int d = (a  + b) / c;
int e = (a + b) % c;
Console.WriteLine($"quotient: {d}");
Console.WriteLine($"remainder: {e}");

C# 整数类型不同于数学上的整数的另一点是,int 类型有最小限值和最大限值。 将此代码添加到 Main方法,看看这些限制的运行机制:

 

int max = int.MaxValue;
int min = int.MinValue;
Console.WriteLine($"The range of integers is {min} to {max}");

如果运算生成的值超过这些限值,则会出现下溢或溢出的情况。 答案似乎是从一个限值覆盖到另一个限值的范围。 例如,将以下两行添加到 Main 方法:

 

int what = max + 3;
Console.WriteLine($"An example of overflow: {what}");

可以看到,答案非常接近最小(负)整数。 与 min + 2 相同。 加法运算会让整数溢出允许的值。 答案是一个非常大的负数,因为溢出从最大整数值覆盖回最小整数值。

如果 int 类型无法满足需求,还会用到限值和精度不同的其他数字类型。 接下来,将探索这些类型。

让我们再一次将你在本节编写的代码移到一个单独的方法中。 将其命名为 TestLimits

使用双精度类型

double 数字类型表示双精度浮点数。 这些词可能是第一次听说。 浮点数可用于表示数量级可能非常大或非常小的非整数。 双精度意味着存储这些数字时使用的精度高于单精度。 在新式计算机上,使用双精度数字比使用单精度数字更为常见。 接下来,将探索双精度类型。 添加以下代码并查看结果:

 

double a = 5;
double b = 4;
double c = 2;
double d = (a  + b) / c;
Console.WriteLine(d);

可以看到,答案商包含小数部分。 试试对双精度类型使用更复杂一点的表达式:

 

double e = 19;
double f = 23;
double g = 8;
double h = (e  + f) / g;
Console.WriteLine(h);

双精度值的范围远大于整数值。 在当前已编写的代码下方试运行以下代码:

 

double max = double.MaxValue;
double min = double.MinValue;
Console.WriteLine($"The range of double is {min} to {max}");

打印出来的这些值用科学记数法表示。 E 左侧为有效数字。 右侧为是 10 的 n 次幂。

与数学上的十进制数字一样,C# 中的双精度值可能会有四舍五入误差。 试运行以下代码:

 

double third = 1.0 / 3.0;
Console.WriteLine(third);

众所周知,0.3 循环小数与 1/3 并不完全相等。

挑战

尝试使用 double 类型执行其他的大小数、乘法和除法运算。 尝试执行更复杂的运算。

花了一些时间应对挑战之后,获取已编写的代码并放在一个新方法中。 将新方法命名为 WorkWithDoubles

使用固定点类型

大家已学习了 C# 中的基本数字类型,即整数和双精度。 下面将介绍另一种需要了解的类型,即 decimal类型。 decimal 类型的范围较小,但精度高于 double。 “固定点”一词意味着,十进制小数点(或二进制小数点)不会移动。 让我们来实际操作一下:

 

decimal min = decimal.MinValue;
decimal max = decimal.MaxValue;
Console.WriteLine($"The range of the decimal type is {min} to {max}");

可以看到,范围小于 double 类型。 通过试运行以下代码,可以看到十进制类型的精度更高:

 

double a = 1.0;
double b = 3.0;
Console.WriteLine(a / b);

decimal c = 1.0M;
decimal d = 3.0M;
Console.WriteLine(c / d);

数字中的 M 后缀指明了常数应如何使用 decimal 类型。

可以看到,使用十进制类型执行数学运算时,十进制小数点右侧的数字更多。

挑战

至此,大家已了解不同的数字类型。请编写代码来计算圆面积(其中,半径为 2.50 厘米)。 请注意,圆面积是用半径的平方乘以 PI 进行计算。 小提示:.NET 包含 PI 常数 Math.PI,可用于相应的值计算。

你应获得 19 和 20 之间的答案。 要查看你的答案,可以查看 GitHub 上的完成示例代码

如果需要,可以试用一些其他公式。

已完成“C# 中的数字”快速入门教程。 可以在自己的开发环境中继续学习分支和循环快速入门教程。

 

 

 

分支和循环

 

本快速入门教程介绍了如何编写代码来检查变量,并根据这些变量更改执行路径。 读者可以编写 C# 代码并查看代码编译和运行结果。 本快速入门教程包含一系列课程,介绍了 C# 中的分支和循环构造。 这些课程介绍了 C# 语言的基础知识。

若要学习本快速入门教程,必须有开发计算机。 .NET 主题 10 分钟入门介绍了如何在 Mac、PC 或 Linux 上设置本地开发环境。 本地快速入门教程简介不仅简要概述了将用到的命令,还收录了详细信息链接。

使用 if 语句做出决定

创建名为 branches-quickstart 的目录。 将新建的目录设为当前目录,并运行 dotnet new console -n BranchesAndLoops -o .。 此命令会在当前目录中创建一个新的 .NET Core 控制台应用程序。

在常用编辑器中,打开 Program.cs,并将行 Console.Writeline("Hello World!"); 替换为以下代码:

 

int a = 5;
int b = 6;
if (a + b > 10)
    Console.WriteLine("The answer is greater than 10.");

通过在控制台窗口键入 dotnet run 试运行此代码。 你应在控制台上看到以下消息:“The answer is greater than 10. (答案大于 10)”。

修改 b 的声明,让总和小于 10:

 

int b = 3;

再次键入 dotnet run。 由于答案小于 10,因此什么也没有打印出来。 要测试的条件为 false。 没有任何可供执行的代码,因为仅为 if 语句编写了一个可能分支,即 true 分支。

提示

在探索 C#(或任何编程语言)的过程中,可能会在编写代码时犯错。 编译器会发现并报告这些错误。仔细查看错误输出和生成错误的代码。 编译器错误通常可帮助你找出问题。

第一个示例展示了 if 和布尔类型的用途。 布尔变量可以包含下列两个值之一:true 或 false。 C# 为布尔变量定义了特殊类型 bool。 if 语句检查 bool 的值。 如果值为 true,执行 if 后面的语句。否则,跳过上述语句。

这种检查条件并根据条件执行语句的过程非常强大。

让 if 和 else 完美配合

若要执行 true 和 false 分支中的不同代码,请创建在条件为 false 时执行的 else 分支。 试运行这些代码。将以下代码中的最后两行添加到 Main 方法(你应

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值