当前位置: 首页 > wzjs >正文

山西大川建设有限公司网站海外网络专线

山西大川建设有限公司网站,海外网络专线,数字媒体应用 网站开发,如何自己创网站在 Stack Overflow 调查中,C# 语言是排名第 5 位的编程语言。它广泛用于创建各种应用程序,范围从桌面到移动设备再到云原生。由于有如此多的语言关键字和功能,对于开发人员来说,要跟上新功能发布的最新信息将是一项艰巨的任务。本…

在 Stack Overflow 调查中,C# 语言是排名第 5 位的编程语言。它广泛用于创建各种应用程序,范围从桌面到移动设备再到云原生。由于有如此多的语言关键字和功能,对于开发人员来说,要跟上新功能发布的最新信息将是一项艰巨的任务。本文深入探讨了每个 C# 开发人员都应该知道的 10 个 C# 关键字。

f450576615fc08a17d2baeec271714ea.png

1. Async 和 Await

  • 关键词: ,asyncawait

C# 中引入的 and 关键字使得在 C# 中处理异步编程变得容易。它们允许您编写在不阻塞主线程的情况下执行操作的代码。此功能对于受 I/O 限制或 CPU 密集型的任务特别有用。通过使用这些关键字,程序员可以轻松处理长时间运行的计算操作,例如调用外部 API 来获取数据或从网络驱动器写入或读取。这将有助于开发响应式应用程序,并可以处理并发操作。asyncawait

C#

1
public async Task<string> GetDataAsync()
2
{
3using (HttpClient client = new HttpClient())
4{
5string result = await client.GetStringAsync("http://bing.com");
6return result;
7}
8
}

2. LINQ

  • 关键词: , , , , , ,fromselectwheregroupintoorder byjoin

LINQ(语言集成查询)提供了一种简单的方法,可以直接在 C# 中查询各种数据源,如数据库、集合和 XML,而无需与其他框架(如 ADO.NET 等)交互。通过使用与 SQL 相同的语法,LINQ 使开发人员能够以可读的方式编写查询。

C#

1
var query = from student in students
2where student.Age > 18
3orderby student.Name
4select student;

3. 性能

  • 关键词property

属性主要是提供灵活机制来读取、写入或计算私有字段值的成员。通常,我们隐藏内部私有支持字段,并通过属性公开它们。这使调用者可以轻松访问数据。在下面的示例中,是隐藏名为 的支持字段的属性,标记为以避免外部调用者直接修改该字段。publicNamenameprivate

C#

1
class Person
2
{
3private string name; // backing field
4public string Name   // property
5{
6get { return name; }
7set { name = value; }
8}
9
}
1011
class Program
12
{
13static void Main(string[] args)
14
{
15Person P1 = new Person();
16P1.Name = "Sunny";
17Console.WriteLine(myObj.Name);
18}
19
}

4. 泛型

  • 关键词: ,generic<T>

泛型允许您为类编写代码,而无需指定该类所处理的数据类型。它是一个类,允许用户使用占位符定义类和方法。C#2.0 中泛型的引入彻底改变了创建模块化可重用代码的格局,否则这些代码需要在多个地方复制。想象一下,您正在处理 2 个数字的相加,然后需要添加 s 或数据类型。我们最终创建了相同的重复代码,因为我们已经在方法参数中定义了一个具有数据类型的方法。泛型使定义占位符和处理不同数据类型的逻辑变得容易。intfloatdoubleint

C#

1
public class Print
2
{
3// Generic method which can take any datatype as method parameter
4public void Display<T>(T value)
5{
6Console.WriteLine($"The value is: {value}");
7}
8
}
910
public class Program
11
{
12public static void Main(string[] args)
13
{
14Print print = new Print();
1516// Call the generic method with different data types
17print.Display<int>(10);
18print.Display<string>("Hello World");
19print.Display<double>(20.5);
20}
21
}

5. 代表和活动

  • 关键词: ,delegateevent

委托只不过是一个对象,它引用一个方法,你可以直接通过它来调用,而不直接调用该方法。委托等效于 C++ 中的函数指针。委托是指向任何方法的类型安全指针。委托主要用于实现回调方法和处理事件。 并且是 C# 中开箱即用的内置代表。delegateFunc<T>Action<T>

另一方面,事件使类或对象能够在发生感兴趣的事情时通知其他类或对象。例如,考虑用户单击您网站上的按钮的场景。它生成一个事件(在本例中为按钮单击),由相应的事件处理程序代码处理。

例子

声明和实例化 a 的示例代码:delegate

C#

1
public delegate void MyDelegate1(string msg); // declare a delegate
23
// This method will be pointed to by the delegate
4
public static void PrintMessage(string message)
5
{
6Console.WriteLine(message);
7
}
89
public static void Main(string[] args)
10
{
11// Instantiate the delegate
12MyDelegate1 del = PrintMessage;
1314// Call the method through the delegate
15del("Hello World");
16
}


用于启动事件并通过处理程序处理事件的示例代码:event

C#

1
// Declare a delegate
2
public delegate void Notify();  
34
public class ProcessBusinessLogic
5
{
6public event Notify ProcessCompleted; // Declare an event
78public void StartProcess()
9
{
10Console.WriteLine("Process Started!");
11// Some actual work here..
12OnProcessCompleted();
13}
1415// Method to call when the process is completed
16protected virtual void OnProcessCompleted()
17
{
18ProcessCompleted?.Invoke();
19}
20
}
2122
public class Program
23
{
24public static void Main(string[] args)
25
{
26ProcessBusinessLogic bl = new ProcessBusinessLogic();
27bl.ProcessCompleted += bl_ProcessCompleted; // Register event handler
28bl.StartProcess();
29}
3031// Event handler
32public static void bl_ProcessCompleted()
33
{
34Console.WriteLine("Process Completed!");
35}
36
}

6. Lambda 表达式

  • 关键词: ,lambda=>

Lambda 表达式提供了一种表示方法的简单方法,在 LINQ 查询和定义短内联函数时特别有用。此功能允许开发人员在执行简单操作时消除对传统方法定义的需求,从而编写可读的代码。Lambda 表达式使 Lambda 表达式成为开发人员在使用 C# 时的宝贵工具,从而提高了代码的清晰度和效率。

C#

1
Func<int, int, int> add = (x, y) => x + y;
23
int result = add(3, 4);  // result is 7

7. 可为 null 的类型

  • 关键词?

在 C# 中,可以为 null 的类型也允许值类型具有状态。当您使用可能具有值的数据库或数据源时,这会派上用场。在值类型后添加 a 有助于开发人员处理数据可能丢失或未定义的情况。这样可以防止在代码运行时导致潜在错误。此功能提供了一种清晰直接的方式来处理可选或缺失的数据,从而使应用程序更加可靠。nullnull?

例:

C#

1
int? num = null;
2
if (num.HasValue)
3
{
4Console.WriteLine($"Number: {num.Value}");
5
}
6
else
7
{
8Console.WriteLine("No value assigned.");
9
}

8. 模式匹配

  • 关键词: ,switchcase

模式匹配是 C# 7.0 中引入的另一个有用功能,然后在该语言的后续版本中进行了一系列改进。模式匹配需要一个表达式,它有助于测试它是否符合特定条件。我们可以以易于阅读的紧凑方式编写代码,而不是冗长的语句。在下面的示例中,我使用了我赋值的地方(数据类型),然后使用模式匹配来打印它是什么数据类型。if-elseobject5int

C#

1
object obj = 5;
23
if (obj is int i)
4
{
5Console.WriteLine($"Integer: {i}");
6
}
7
switch (obj)
8
{
9case int j:
10Console.WriteLine($"Integer: {j}");
11break;
12case string s:
13Console.WriteLine($"String: {s}");
14break;
15default:
16Console.WriteLine("Unknown type.");
17break;
18
}

9. 扩展方式

  • 关键词:(在方法签名中)this

扩展方法允许开发人员在不更改其原始代码的情况下向现有类型添加新方法。这些方法是静态的,但工作方式类似于扩展类型的实例方法,提供了一种流畅的方式来添加新功能。扩展方法使代码更加模块化和可重用,使开发人员能够从库外部扩展类型,而不会弄乱原始代码。扩展方法还支持“开放/封闭”原则,这意味着代码对扩展是开放的,但对修改是封闭的。

C#

1
public static class StringExtensions
2
{
3public static bool IsNullOrEmpty(this string value)
4
{
5return string.IsNullOrEmpty(value);
6}
7
}
89
// Usage
10
string str = null;
11
bool result = str.IsNullOrEmpty();  // result is true

10. 元组

  • 关键词:tuple

元组允许您将多个值分组为一个单元。当您想要从方法发回多个值而不使用参数或仅为了在对象之间传输数据而创建新类时,它们会有所帮助。使用元组,您可以打包并返回一组相关值,这使我们的代码更易于阅读和理解。您可以为元组中的字段命名,也可以不命名它们。然后,使用 和 引用值,如下所示。Item1Item2

C#

1
public (int, string) GetPerson()
2
{
3return (1, "John Doe");
4
}
56
// Usage
7
var person = GetPerson();
8
Console.WriteLine($"ID: {person.Item1}, Name: {person.Item2}");

结论

通过使用 / 来很好地处理任务,使用 LINQ 来获取数据,保证数据安全,确保类型正确,对于对事件做出反应的程序,使用 Lambda 表达式来编写短函数,使用 null 类型来处理缺失的信息,使用 Pattern Matching 来使代码更清晰并说得更多,使用 Extension 方法添加新功能, 和元组 为了更好地组织数据,您可以编写更易于管理且不太可能中断的代码。

http://www.dtcms.com/wzjs/201486.html

相关文章:

  • 网页制作网站首页一键免费创建论坛网站
  • 枣庄网站建设电话十大app开发公司排名
  • 外贸网站建站免费站长工具
  • 网页网站动作效果做的比较棒目前推广平台都有哪些
  • wordpress订阅插件键词优化排名
  • 毕设 代做 网站广州市口碑seo推广外包
  • 基于web的网上商城设计西安seo关键词推广
  • 网站建设电子书短视频营销推广策略
  • 网站ftp目录海南百度推广seo
  • 网站建设完整代码seo教程搜索引擎优化
  • 网站如何做滚动效果图深圳互联网营销
  • 怎么做百度提交入口网站外贸网络营销
  • 昆明做网站生哥seo博客
  • easyui网站开发实战电子书全媒体运营师培训费用
  • 用php做高中数学题库网站上海seo优化公司 kinglink
  • wordpress add_query_var西安seo和网络推广
  • 禁止百度收录wordpress文章网站seo排名公司
  • 邯郸网站设计有哪些kol推广
  • 打开网站后直接做跳转温州网站建设
  • 网站怎么做超链接企业营销策划
  • 网站建设需要什么软件有哪些排名优化公司哪家靠谱
  • 厦门有没有做网站的慈溪seo排名
  • 做跨境电商在什么网站选品深圳网络推广公司哪家好
  • 人和动物做的网站seo刷词
  • 做空港币人民币网站工具刷网站排刷排名软件
  • 百度网站建设策划书范文拼多多代运营收费标准
  • 鸡西市法院的网站建设公司东莞seo建站公司
  • 海口网站建设 找小黄网络小红书kol推广
  • 小型网站搭建南京seo收费
  • 二手域名做网站不收录2021年经典营销案例