![](https://img-blog.csdnimg.cn/20190815162400519.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
C#高级编程
文章平均质量分 79
从小白成长为为架构师的第一步
Ciel_Bubble
这个作者很懒,什么都没留下…
展开
-
Task
Task 多线程的几种用法大体上都是相似的,首先我们查看Task的定义: 如果不想一辈子做一个Coder的话,我们在使用新知识的时候需要取自学,就拿Task来说,我们可以看到一些信息: 1.Task是一个非静态的类,在使用的时候需要声明。 2.Task的构造函数是有参数的。 3.Task需要一个委托来作为参数,这个委托是没有返回值的。 4.在我们不知道重载是干什么的时候我们可以查看对...原创 2019-08-17 19:16:51 · 316 阅读 · 0 评论 -
简单多线程、线程池与异步多线程
异步 1.常见的同步方法:using System;namespace AsyncPractice{ internal class AsyncClass { public AsyncClass() { Action action = () => this.DoSomething(); a...原创 2019-08-09 10:29:20 · 377 阅读 · 0 评论 -
C#序列化与反序列化
BuildProgrammerList是一个返回值为List的静态方法,主要用途为向List中添加多条信息,List的类型为Person。1.Binaryusing System;using System.IO;using System.Runtime.Serialization.Formatters.Binary;using IOSerialize.IO;using IOSerial...原创 2019-07-29 11:38:09 · 139 阅读 · 0 评论 -
C#委托 Lambda Func/Action
在将讲Lambda之前需要先看看委托和匿名方法: 匿名方法using System;namespace LambdaPractice{ internal class Program { private static void Main(string[] args) { var anonymous1 = new ...原创 2019-07-24 21:55:55 · 348 阅读 · 0 评论 -
C#反射(Reflection)
反射是.net中的一种重要机制,通过反射操作,我们可以得到程序集(dll)的成员信息(namespace,class,method,properties,field,constructor等)。我们经常通过反射来调用一些在程序集中我们不知道的方法,属性,字段的赋值,实例化等等。1.加载dll在这里我们需要自己生成一个程序集(AssemblyTest.Interface|GitHub代码),然...原创 2019-07-15 18:23:10 · 666 阅读 · 0 评论 -
C#协变和逆变
协变(covariant)和逆变(contravariant)是C#4.0新增的概念。首先,我们都知道C#中父类可以充当子类来使用,就像我们在泛型中说到的object是所有类型的父类,那么以下变量赋值时不会报错的:string str = string.Empty;object obj = str;但是如果换一种方式来表达: 创建一个Human类:using System;usin...原创 2019-07-04 16:40:36 · 1767 阅读 · 0 评论 -
C#泛型
1.什么是泛型 应该都听过刘谦的魔术《魔壶》吧,想要什么味道的饮料都可以倒出来。在C#中,可以将泛型比作刘谦手上的壶,我们需要的类型比作壶倒出来的饮料。在碰到一些功能相似,类型不同的方法时,我们就可能会用到泛型。当然object也能达到泛型的效果,但是泛型不是object,他们有很大的区别。2.一个需要用泛型的示例 在之前上网课的时候有老师举出了一些代码示例,在这就先借鉴一下:using ...原创 2019-07-01 15:16:16 · 535 阅读 · 0 评论