文章路径: 全部 / 叶飞 / 源栈培训:ASP.NET全栈开发 / 后台开发 / C#语法 /

从入门的变量赋值、分支循环、到面向对象,以及更先进的语言特性,如:泛型、Lambda、Linq、异步方法等…………


更多
2019年06月13日 09点00分 作者:叶飞 修改

【选】C#进阶:Linq to XML

什么是XML(EXtensibleMarkupLanguage)是一种文本文件格式被设计用来传输和存储数据由:标签和属性组成元素(节点),由元素组成“树状结构”必须有而且只能有一个根节点其他:大小写敏感注释实体引用(保留字符替代)https://docs.microsoft.com/zh-cn/dotnet/csharp/programming-guide/concepts/linq/linq-to-xml-overviewhttps://docs.microsoft.com/zh-cn/dotnet/c ……

源栈培训 C# 进阶 Linq XML
2020年11月19日 21点44分 作者:叶飞 修改

异步方法和TPL: async / await / Parallel

封装我们要把上面这个Task封装成方法,怎么办?最重要的一点,这个方法要能返回生成的random,后面的代码要用!public static Task<int> getRandom(){return Task<int>.Run(() =>{Thread.Sleep(500); //模拟耗时return new Random().Next();});}@想一想@:应该如何调用这个方法?(提示:不要直接getRandom().Result) 假如我们还需要进一步的封装,添加 ……

异步方法 async await 并发
2019年06月20日 22点45分 作者:叶飞 修改

线程和任务:Thread / Task

async 和 await async方法一直同步运行,直到 await。从await开始,代码开始分叉(只是异步,不一定新开线程)执行:一边执行await后的表达式(Task)一边返回到方法调用者处继续执行直到await后的Task执行完毕,才会返回async方法,继续执行其await之后的剩余代码。public static async void Getup(){Console.WriteLine($"before await-1 with thread {Thread.CurrentThread.M ……

源栈培训 C# 异步 并行
2021年01月03日 21点34分 作者:叶飞 修改

发送Email:SMTP / MailMessage / SmtpClient

发送EmailEmail并不能在用户之间直接传递,而是依赖于邮件的:发送服务器(如下图:smtp.163.com)接收服务器(如下图:pop.qq.com)发送方(sender)将email推送给邮件发送服务器。这一过程可以由用户登录邮箱网站完成,或使用其他邮箱软件(如outlook)推送163.com按邮件收件人地址将email推送到qq.com服务器收件方(receiver)从服务器拉取自己的email上述3个过程,1和2都是推送,使用SMTP(Simple Mail Transfer Protoco ……

Email 原理 发送
2019年06月10日 08点58分 作者:叶飞 修改

C#进阶:IO和文件操作

为什么是IO?文件的本质是一个有序的(ordered)命名的(named)字节组合,也就是流(stream)。文件的读写,本质上就是字节流的输入(Input)输出(Output)除了文件,还有其他形式的流,比如内存、网络和管道等……所以,命名空间:using System.IO;以下:一半演示/一半作业。锻炼同学们查阅文档的能力……路径(Path)Path是静态类,主要是针对文件路径进行操作,不涉及文件夹或文件本身。常用方法:Combine:组合成一个路径Extension:文件扩展名相关Director ……

源栈培训 C# 文件操作
2019年06月08日 22点15分 作者:叶飞 修改

C#进阶:Linq方法

除了可以在我们之前学习的(类sql)Linq查询语法中使用Count()/Average()等方法,整个Linq查询语句,其实都可以写成方法。因为C#编译器实际上会把所有的Linq查询表达式编译成方法,然后执行。常用方法以下皆可对照源栈培训:C#进阶-2:Linq条件过滤:Wherevar excellent = students.Where(s => s.Score > 90);var excellent = students//.Where(s => s.Majors.Count & ……

源栈培训 C# 语法 Linq method
2020年04月05日 13点30分 作者:叶飞 修改

C#进阶:Linq-2:join和let

连接(join) 将多个集合连接起来进行查询,以获得额外的条件或结果集。其实在Linq to Object中并不必要(但Linq to SQL中很常用),因为类的关联,总有一些其他办法,如:找到老师姓名为“小鱼”的课程var majors = from m in majors//以下三句join t in teacherson m.Teacher equals t //equals非常重要,不能使用 == 替代where t.Name == "小鱼"//可以被一句替代:where m.Teach ……

C# Linq Join
2019年06月02日 15点04分 作者:叶飞 修改

C#进阶:Linq-1:where/order/group/select

集合的增删改查中,最有技术含量的就是:查。在过去很长一段时间里,我们只能在for/foreach循环中进行遍历和筛选,直到出现了Linq……Linq(Language-Integrated Query)Linq并非只针对集合,它已经作用于数据(Linq to SQL/EF)、XML文件(Linq to XML)、Web Service……针对于集合的操作属于Linq to Object。但所有的Linq使用统一的查询表达式(query expression)。先睹为快:说明:以from开头数据源(sour ……

源栈培训 C# 语法 Linq
2020年04月02日 22点11分 作者:叶飞 修改

C#进阶:集合:foreach背后

foreach foreach (var item in collection){Console.WriteLine(item);}注意和for循环的区别:for循环的迭代基础是累加器和下标(i++)foreach循环的基础是迭代器的MoveNext()foreach里的item不能被赋值(assign)底层实现:为什么可以foreach?需要实现IEnumerable:该接口能返回IEnumerator:具有MoveNext()方法上述foreach实质上等于:IEnumerator<int> ……

C# 集合 foreach 迭代器
2020年06月04日 23点06分 作者:叶飞 修改

C#进阶:Entity和Repository

对象引用面向对象的世界里,万物皆对象。对象和对象之间的关系除了“继承”,就是“组合”(复习)。 这些关系通过对象的属性体现。比如:class Student{//一个学生有一个老师public Teacher Teacher { get; set; }}class Student{//一个学生有多个老师public IList<Teacher> Teacher { get; set; }}这就被称之为:引用或依赖,比如:Student引用了TeacherTeacher被Student引用Stu ……

Entity Repository模式

后台开发


其他:WebForm和WebApi

其他ASP.NET框架,如WebForm、WebApi……

RazorPages(Core)

微软推荐的、最新的、基于Razor页面和.NET core的新一代Web项目开发技术,包括Razor Tag Helper、Model绑定和Validation、Session/Cookie、内置依赖注入等……

MVC(Framework)

过去两年间最流行的、基于.NET Framework和MVC模式的ASP.NET MVC框架,主要用于讲解安全、性能、架构和各种实战功能演示……

C#语法

从入门的变量赋值、分支循环、到面向对象,以及更先进的语言特性,如:泛型、Lambda、Linq、异步方法等…………

Java语法

面向过程的变量赋值、分支循环和函数封装;面向对象的封装、继承和多态;以及更高阶的常用类库(集合/IO/多线程……)、lambda等

Java Web开发

分层架构和综合实战

J&C

Java和C#共有的语法

全部
关键字



帮助

反馈