C#中的抽象属性 代码1:using System;using System.Text;namespace 抽象属性{ class Program { static void Main(string[] args) { Student s = new Student(); s.Name = "渣渣辉";...
C#中的抽象类、抽象方法 代码1:using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace 抽象类_抽象方法{ class Program { static void Main(strin...
C#中的继承、重载、覆写 代码1:using System;using System.Text;namespace 继承_重载_覆写{ class Program { static void Main(string[] args) { Person p = new Person(); p.selfIntroduct...
Thrift白皮书(翻译) 注:本文翻译自http://thrift.apache.org/static/files/thrift-20070401.pdfThrift:可扩展的、跨语言的服务实现摘要Thrift是Facebook为了促进高效、可扩展的后台服务的开发和实现而开发的一套软件库和代码生成工具集。它的主要目标是通过将各个语言中趋于大量定制的部分抽象进一个被各个语言实现的公共语言库中实现高效、可靠的跨语言通信。...
C#中的短路运算符 using System;namespace 短路运算符{ class Program { static void Main(string[] args) { Console.WriteLine("*************************** true && true ************...
C#中的TaskCompletionSource<TResult> Represents the producer side of a Task<TResult> unbound to a delegate, providing access to the consumer side through the Task property.参考资料:https://docs.microsoft.com/en-us/dotnet/api/system....
C#异步编程之async/await 通过async/await这两个关键字编写出来的代码,代码长(zhang)的像同步编程,但实际上是异步编程。也就是说,async/await能够以同步编程的形式实现异步编程。 async/await是C#5.0引入的。 关键字async用在方法定义前面,关键字await只能用在async标记的方法中。 async修饰的方法的返回值类型只能是void或者Task或者Task<T>这...
C#中的Task Task的优势ThreadPool相比Thread来说具备了很多优势,但是ThreadPool存在一些使用上的不方便。比如:ThreadPool不支持线程的取消、完成、失败通知等交互性操作;ThreadPool不支持线程执行的先后顺序。以往,如果开发者要实现上述功能,需要完成很多额外的工作。现在,FCL(Framework Class Library)提供了一个功能更加强大的概念:Task。T...
C#中的Task.Delay()和Thread.Sleep() Thread.Sleep()是同步延迟,Task.Delay()是异步延迟。 Thread.Sleep()会阻塞线程,Task.Delay()不会。 Thread.Sleep()不能取消,Task.Delay()可以。 Task.Delay()实质创建一个运行给定时间的任务,Thread.Sleep()使当前线程休眠给定时间。 反编译Task.Delay(),基本上讲它就是个包裹在任务中的...
C#中的CancellationTokenSource CancellationTokenSource用于取消基于Task建立的线程(单个线程、多个线程都可以)。 定时取消也是可以的。 可以通过合并多个cts,达到其中一个任务取消,则任务全部取消的效果。参考资料:https://www.cnblogs.com/majiang/p/7920102.html(目前还看不懂)https://www.cnblogs.com/luohengstud...
C#中的Action和Func(范型委托) 以前使用委托需要定义委托然后绑定方法,不够简洁。现在通过Action和Func可以简化委托的使用。Action<T1,T2,T3,T4,...>表示有n个参数(参数类型可以不同),但没有返回值的委托。Func<T1,T2,T3,T4,...,TResult>表示有n个参数(参数类型可以不同)且有一个返回值的委托(返回值类型为TResult)。参考资料:h...
C#中的IEnumerable 在MSDN上,是这么说的,它是一个公开枚举数,该枚举数支持在非范型集合上进行简单的迭代。参考资料(非常好):https://www.cnblogs.com/fangyz/p/5721269.htmlhttps://blog.csdn.net/weixin_42339460/article/details/80733758以下为本人的调试代码:代码1:using Syste...
C#参数列表中的params 在参数数目可变时采用方法参数params。 params关键字之后不允许任何其他参数,并且在方法声明中只允许一个params关键字。 params不允许与ref\out组合使用。 params在你不知道参数数量时显得很有用,虽然也可以使用List等集合代替,但是params显得更直观。 params只能用于一维数组,不能用于多维数组和诸如ArrayList、List<T>等类似...