翼度科技»论坛 编程开发 .net 查看内容

深入理解 C# 编程:枚举、文件处理、异常处理和数字相加

4

主题

4

帖子

12

积分

新手上路

Rank: 1

积分
12
C# 枚举

枚举是一个特殊的“类”,表示一组常量(不可更改/只读变量)。
要创建枚举,请使用 enum 关键字(而不是 class 或 interface),并用逗号分隔枚举项:
  1. enum Level
  2. {
  3.   Low,
  4.   Medium,
  5.   High
  6. }
复制代码
您可以使用点语法访问枚举项:
  1. Level myVar = Level.Medium;
  2. Console.WriteLine(myVar);
复制代码
Enum 是 "enumerations" 的缩写,意思是“特定列举”。
在类内部定义枚举也是可行的:
  1. class Program
  2. {
  3.   enum Level
  4.   {
  5.     Low,
  6.     Medium,
  7.     High
  8.   }
  9.   static void Main(string[] args)
  10.   {
  11.     Level myVar = Level.Medium;
  12.     Console.WriteLine(myVar);
  13.   }
  14. }
复制代码
输出将为:
  1. Medium
复制代码
枚举值

默认情况下,枚举的第一项的值为 0。第二项的值为 1,依此类推。
要从项中获取整数值,必须显式将项转换为 int:
  1. enum Months
  2. {
  3.   January,    // 0
  4.   February,   // 1
  5.   March,      // 2
  6.   April,      // 3
  7.   May,        // 4
  8.   June,       // 5
  9.   July        // 6
  10. }
  11. static void Main(string[] args)
  12. {
  13.   int myNum = (int) Months.April;
  14.   Console.WriteLine(myNum);
  15. }
复制代码
输出将为:
  1. 3
复制代码
您还可以分配自己的枚举值,接下来的项将相应地更新它们的数字:
  1. enum Months
  2. {
  3.   January,    // 0
  4.   February,   // 1
  5.   March=6,    // 6
  6.   April,      // 7
  7.   May,        // 8
  8.   June,       // 9
  9.   July        // 10
  10. }
  11. static void Main(string[] args)
  12. {
  13.   int myNum = (int) Months.April;
  14.   Console.WriteLine(myNum);
  15. }
复制代码
输出将为:
  1. 7
复制代码
在 Switch 语句中使用枚举

枚举通常在 switch 语句中用于检查相应的值:
  1. enum Level
  2. {
  3.   Low,
  4.   Medium,
  5.   High
  6. }static void Main(string[] args) {  Level myVar = Level.Medium;  switch(myVar)   {    case Level.Low:      Console.WriteLine("低级别");      break;    case Level.Medium:       Console.WriteLine("中级别");      break;    case Level.High:      Console.WriteLine("高级别");      break;  }}
复制代码
输出将为:
  1. 中级别
复制代码
何时以及为什么使用枚举?

在有些情况下,当您知道值不会更改时,例如月份、日期、颜色、扑克牌等时,请使用枚举。
C# 文件

处理文件

System.IO 命名空间中的 File 类允许我们处理文件:
  1. using System.IO;  // 包含 System.IO 命名空间
  2. File.SomeFileMethod();  // 使用带有方法的 File 类
复制代码
File 类具有许多有用的方法,用于创建文件和获取有关文件的信息。例如:
方法描述AppendText()在现有文件的末尾追加文本Copy()复制文件Create()创建或覆盖文件Delete()删除文件Exists()测试文件是否存在ReadAllText()读取文件的内容Replace()用另一个文件的内容替换文件的内容WriteAllText()创建新文件并将内容写入其中。如果文件已存在,将覆盖它。有关 File 方法的完整列表,请参阅 Microsoft .Net File Class 参考文档.
写入文件并读取它

在以下示例中,我们使用 WriteAllText() 方法创建一个名为 "filename.txt" 的文件,并向其中写入一些内容。然后,我们使用 ReadAllText() 方法读取文件的内容:
  1. using System.IO;  // 包含 System.IO 命名空间
  2. string writeText = "Hello World!";  // 创建一个文本字符串
  3. File.WriteAllText("filename.txt", writeText);  // 创建文件并将 writeText 的内容写入其中
  4. string readText = File.ReadAllText("filename.txt");  // 读取文件的内容
  5. Console.WriteLine(readText);  // 输出内容
复制代码
输出将为:
  1. Hello World!
复制代码
C# 异常

在执行 C# 代码时,可能会发生不同类型的错误:由程序员制造的编码错误,由于错误的输入或其他不可预见的事物而导致的错误。
当发生错误时,C# 通常会停止执行并生成错误消息。这种情况的技术术语是:C# 会引发异常(抛出错误)。
C# try 和 catch

try 语句允许您定义一块在执行过程中测试错误的代码块。
catch 语句允许您定义一块在 try 块中发生错误时执行的代码块。
try 和 catch 关键字是成对出现的:
  1. try
  2. {
  3.   // 试图执行的代码块
  4. }
  5. catch (Exception e)
  6. {
  7.   // 处理错误的代码块
  8. }
复制代码
考虑以下示例,我们在其中创建一个包含三个整数的数组:
这将生成一个错误,因为 myNumbers[10] 不存在。
  1. int[] myNumbers = {1, 2, 3};
  2. Console.WriteLine(myNumbers[10]); // error!
复制代码
错误消息将类似于:
  1. System.IndexOutOfRangeException: 'Index was outside the bounds of the array.'
复制代码
如果发生错误,我们可以使用 try...catch 来捕获错误并执行一些代码来处理它。
在以下示例中,我们在 catch 块中使用变量(e)以及内置的 Message 属性,该属性输出描述异常的消息:
  1. try
  2. {
  3.   int[] myNumbers = {1, 2, 3};
  4.   Console.WriteLine(myNumbers[10]);
  5. }
  6. catch (Exception e)
  7. {
  8.   Console.WriteLine(e.Message);
  9. }
复制代码
输出将为:
  1. Index was outside the bounds of the array.
复制代码
您还可以输出自己的错误消息:
  1. try
  2. {
  3.   int[] myNumbers = {1, 2, 3};
  4.   Console.WriteLine(myNumbers[10]);
  5. }
  6. catch (Exception e)
  7. {
  8.   Console.WriteLine("Something went wrong.");
  9. }
复制代码
输出将为:
  1. Something went wrong.
复制代码
finally 块

finally 语句允许您在 try...catch 之后执行代码,无论结果如何:
  1. try
  2. {
  3.   int[] myNumbers = {1, 2, 3};
  4.   Console.WriteLine(myNumbers[10]);
  5. }
  6. catch (Exception e)
  7. {
  8.   Console.WriteLine("Something went wrong.");
  9. }finally{  Console.WriteLine("The 'try catch' is finished.");}
复制代码
输出将为:
  1. Something went wrong.
  2. The 'try catch' is finished.
复制代码
throw 关键字

throw 语句允许您创建自定义错误。
throw 语句与异常类一起使用。在 C# 中有许多异常类可用:ArithmeticException、FileNotFoundException、IndexOutOfRangeException、TimeOutException 等:
  1. static void checkAge(int age)
  2. {
  3.   if (age < 18)
  4.   {
  5.     throw new ArithmeticException("Access denied - You must be at least 18 years old.");
  6.   }
  7.   else
  8.   {
  9.     Console.WriteLine("Access granted - You are old enough!");
  10.   }
  11. }
  12. static void Main(string[] args)
  13. {
  14.   checkAge(15);
  15. }
复制代码
程序中显示的错误消息将为:
  1. System.ArithmeticException: 'Access denied - You must be at least 18 years old.'
复制代码
如果 age 为 20,则不会引发异常:
  1. checkAge(20);
复制代码
输出将为:
  1. Access granted - You are old enough!
复制代码
C# 如何相加两个数字

学习如何在 C# 中相加两个数字:
  1. // 示例
  2. int x = 5;
  3. int y = 6;
  4. int sum = x + y;
  5. Console.WriteLine(sum); // 打印 x + y 的和
复制代码
最后

为了方便其他设备和平台的小伙伴观看往期文章:
微信公众号搜索:Let us Coding,关注后即可获取最新文章推送
看完如果觉得有帮助,欢迎 点赞、收藏、关注

来源:https://www.cnblogs.com/xiaowange/p/17995312
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!

举报 回复 使用道具