找到 34423 篇文章 编程

在 C# 中使用 if/else 和 switch-case 有什么区别?

Nizamuddin Siddiqui
更新于 2020-08-19 13:43:48

346 次浏览

Switch 是一种选择语句,它根据与匹配表达式的模式匹配,从候选列表中选择一个唯一的 switch 部分来执行。如果单个表达式针对三个或更多条件进行测试,则 switch 语句通常用作 if-else 结构的替代方案。Switch 语句速度更快。在 switch 语句中,无论您有多少不同的情况,平均比较次数都将为 1,因此任意情况的查找为 O(1)使用 Switch - 示例类程序{ 公共枚举水果{ 红色,绿色,蓝色} 公共静态无效主(){ 水果 c = (水果)(新随机数()).Next(0,... 阅读更多

如何在 C# 中的匿名类中实现接口?

Nizamuddin Siddiqui
更新于 2020-08-19 13:39:59

2K+ 次浏览

不,匿名类型无法实现接口。我们需要创建自己的类型。匿名类型提供了一种便捷的方式,可以将一组只读属性封装到单个对象中,而无需首先显式定义类型。类型名称由编译器生成,在源代码级别不可用。每个属性的类型由编译器推断。您可以使用 new 运算符和对象初始化器来创建匿名类型。示例类程序{ 公共静态无效主(){ var v = new { Amount = 108, Message = "Test" }; ... 阅读更多

如何在 C# 中编写重试逻辑?

Nizamuddin Siddiqui
更新于 2020-08-19 13:38:37

1K+ 次浏览

每当出现失败操作时,都会实现重试逻辑。仅在失败操作的完整上下文中实现重试逻辑。记录导致重试的所有连接故障非常重要,以便能够识别应用程序、服务或资源的潜在问题。示例类程序{ 公共静态无效主(){ HttpClient client = new HttpClient(); dynamic res = null; var retryAttempts = 3; var delay = TimeSpan.FromSeconds(2); RetryHelper.Retry(retryAttempts, delay, () =>{ res = client.GetAsync("https://example22.com/api/cycles/1"); }); ... 阅读更多

Monitor 和 Lock 在 C# 中有什么区别?

Nizamuddin Siddiqui
更新于 2020-08-19 13:36:43

2K+ 次浏览

Monitor 和 lock 都提供了一种同步对对象访问的机制。lock 是 Monitor.Enter 与 try 和 finally 的快捷方式。Lock 是一种快捷方式,是基本用法的选择。如果我们需要更多控制权来使用 TryEnter() Wait()、Pulse() 和 PulseAll() 方法实现高级多线程解决方案,那么 Montior 类就是您的选择。Lock 示例 - 示例类程序{ 静态对象_lock = new object(); 静态 int Total; 公共静态无效主(){ AddOneHundredLock(); Console.ReadLine(); } 公共静态无效 AddOneHundredLock(){ for (int i = 1; i

如何在 C# 中使用 Comparison 委托对复杂类型的列表进行排序?

Nizamuddin Siddiqui
更新于 2020-08-19 13:32:43

467 次浏览

List 类中 Sort() 方法的重载期望将 Comparison 委托作为参数传递。public void Sort(Comparison comparison)CompareTo 返回一个整数,指示此实例的值是否小于、等于或大于指定对象或其他 Int16 实例的值。C# 中的 Int16.CompareTo() 方法用于将此实例与指定对象或另一个 Int16 实例进行比较示例类程序{ 公共静态无效主(){ Employee Employee1 = new Employee(){ ID = 101, Name = "Mark", ... 阅读更多

如何在 C# 中使用 LINQ 和 Lambda 进行联接?

Nizamuddin Siddiqui
更新于 2020-08-19 13:30:09

9K+ 次浏览

内部联接仅返回两个表中都匹配或存在那些记录或行。我们还可以根据如下所示的条件将联接应用于多个表。如果我们需要将联接应用于多个条件,请使用匿名类型。在下面的示例中,我们编写了两种可以使用 Linq 进行联接的方式,这里联接了部门和员工示例类程序{ 静态无效主(字符串[] args){ var result = Employee.GetAllEmployees().Join(Department.GetAllDepartments(), e => e.DepartmentID, d => d.ID, (employee, department) ... 阅读更多

C# 中用于调试与发布的 if/then 指令是什么?

Nizamuddin Siddiqui
更新于 2020-08-19 13:27:28

2K+ 次浏览

在 Visual Studio 中,调试模式和发布模式是构建 .Net 项目的不同配置。选择调试模式以逐步调试其 .Net 项目,并选择发布模式以最终构建程序集文件(.dll 或 .exe)。要更改构建配置 - 从“构建”菜单中,选择“配置管理器”,然后选择“调试”或“发布”。或者在工具栏上,从“解决方案配置”列表中选择“调试”或“发布”。#if debug 内编写的代码仅在代码在调试模式下运行时才会执行。如果代码在发布... 阅读更多

如何在 C# 中获取 Unix 时间戳

Nizamuddin Siddiqui
更新于 2020-08-19 13:26:03

6K+ 次浏览

Unix 时间戳主要用于 Unix 操作系统。但它对所有操作系统都有帮助,因为它表示所有时区的时间。Unix 时间戳以秒为单位表示时间。Unix 纪元始于 1970 年 1 月 1 日。因此,Unix 时间戳是特定日期之间以秒为单位的数字示例要使用 DateTime.Now.Subtract().TotalSeconds 方法获取 Unix 时间戳类程序{ 静态无效主(字符串[] args){ Int32 unixTimestamp = (Int32)(DateTime.Now.Subtract(new DateTime(1970, 1, 1))).TotalSeconds; Console.WriteLine("Unix 时间戳为 {0}",unixTimestamp); Console.ReadLine(); } }输出 1596837896示例要使用 DateTimeOffset.Now.ToUnixTimeSeconds() ... 阅读更多

如何在 C# 中强制进行垃圾回收?

Nizamuddin Siddiqui
更新于 2020-08-19 13:24:11

2K+ 次浏览

是的,可以通过调用 Collect() 方法来强制 C# 中的垃圾回收器运行这不被认为是一种好的做法,因为这可能会导致性能开销。Collect() 强制立即回收所有代的垃圾。Collect(Int32)强制从第 0 代到指定代立即回收垃圾。示例实时演示使用系统;类 MyGCCollectClass{ 私有常量 int maxGarbage = 1000; 静态无效主(){ // 将一些对象放入内存中。 MyGCCollectClass.MakeSomeGarbage(); Console.WriteLine("回收前使用的内存:{0:N0}", GC.GetTotalMemory(false)); // 收集所有代的内存。 ... 阅读更多

如何在 C# 中创建具有非默认重复值的数组?

Nizamuddin Siddiqui
更新于 2020-08-19 13:19:46

629 次浏览

我们可以使用 Enumerable.Repeat() 创建一个具有非默认值的数组。它在 C# 中使用重复元素重复一个集合。首先,设置要重复的元素以及重复多少次。示例 1类程序{ 静态无效主(字符串[] args){ var values = Enumerable.Repeat(10, 5); foreach (var item in values){ System.Console.WriteLine(item); } Console.ReadLine(); } }输出 10 10 10 10 10示例 2类程序{ 静态无效主(字符串[] args){ int[] values = Enumerable.Repeat(10, 5).ToArray(); foreach (var item in values){ System.Console.WriteLine(item); } Console.ReadLine(); } }输出 10 10 10 10 10

广告

© . All rights reserved.