找到 34423 篇文章,主题为编程

C#中if/else和switch-case语句的区别是什么?

Nizamuddin Siddiqui
更新于 2020年8月19日 13:43:48

346 次浏览

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

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

Nizamuddin Siddiqui
更新于 2020年8月19日 13:39:59

2K+ 次浏览

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

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

Nizamuddin Siddiqui
更新于 2020年8月19日 13:38:37

1K+ 次浏览

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

C#中Monitor和Lock的区别是什么?

Nizamuddin Siddiqui
更新于 2020年8月19日 13:36:43

2K+ 次浏览

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

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

Nizamuddin Siddiqui
更新于 2020年8月19日 13:32:43

467 次浏览

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

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

Nizamuddin Siddiqui
更新于 2020年8月19日 13:30:09

9K+ 次浏览

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

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

Nizamuddin Siddiqui
更新于 2020年8月19日 13:27:28

2K+ 次浏览

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

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

Nizamuddin Siddiqui
更新于 2020年8月19日 13:26:03

6K+ 次浏览

Unix时间戳主要用于Unix操作系统。但它对所有操作系统都有帮助,因为它表示所有时区的时间。Unix时间戳以秒为单位表示时间。Unix纪元始于1970年1月1日。因此,Unix时间戳是特定日期之间的秒数示例使用DateTime.Now.Subtract().TotalSeconds方法获取Unix时间戳类程序{ 静态无效 Main(string[] 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年8月19日 13:24:11

2K+ 次浏览

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

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

Nizamuddin Siddiqui
更新于 2020年8月19日 13:19:46

629 次浏览

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