随笔分类 -  01-C#/.Net基础

摘要:一. 主构造函数 C# 12 引入了主构造函数,这是一种简明的语法,用于声明一些构造函数,它们的参数在类型主体中的任何位置可用 1. 初始化属性 /// <summary> /// 普通写法 /// </summary> public class People1 { public string na 阅读全文
posted @ 2024-04-11 13:52 Yaopengfei 阅读(213) 评论(0) 推荐(0) 编辑
摘要:一. 顶级语句 1. 直接在C#文件中直接编写入口方法的代码,不用类,不用Main.同时经典写法仍然支持,反编译一下了解真相. 2. 同一个项目中只能有一个文件具有顶级语句3. 顶级语句中可以直接使用await语法,也可以声明函数 代码分享: Console.WriteLine("测试写入文件哦") 阅读全文
posted @ 2022-05-07 14:40 Yaopengfei 阅读(2888) 评论(2) 推荐(2) 编辑
摘要:一. C#7.x总结 参考:https://docs.microsoft.com/zh-cn/dotnet/csharp/whats-new/csharp-7 1.弃元 (1).含义 从 C# 7.0 开始,C# 支持弃元,这是一种在应用程序代码中人为取消使用的【占位符变量】、。 弃元相当于未赋值的 阅读全文
posted @ 2021-02-03 14:34 Yaopengfei 阅读(1353) 评论(1) 推荐(1) 编辑
摘要:一. 静态和非静态 1. 概念介绍 ① 静态类(被static修饰) vs 普通类(没有被static修饰) ② 静态成员:被static修饰的成员,比如:静态方法、静态字段等 ③ 普通成员(实例成员):不被static修饰的成员,比如:普通方法、普通字段 2. 运行机制 ① 静态成员在程序运行的时 阅读全文
posted @ 2018-06-22 11:39 Yaopengfei 阅读(1714) 评论(3) 推荐(6) 编辑
摘要:一. 回顾历史 回顾个人发展历程,自2012年初次接触开发至今(2018年)已经有六个年头,这期间陆陆续续学习并掌握了不少技术,C#语言、ORM框架、多线程技术、设计模式、前端技术、MVC、MVVM框架思想等等,每种技术随着多次使用,随着不断的反思,逐渐经历 “了解→理解→掌握→精通 ”这么一个过程 阅读全文
posted @ 2018-06-15 11:41 Yaopengfei 阅读(10760) 评论(25) 推荐(34) 编辑
摘要:一. C# 6.0 新语法 1. 自动属性初始化可以赋值 1 /// <summary> 2 /// 自动属性初始化 3 /// </summary> 4 public class UserInfor 5 { 6 public string userId { get; set; } = "12345 阅读全文
posted @ 2018-05-19 22:03 Yaopengfei 阅读(1575) 评论(1) 推荐(4) 编辑
摘要:一. 各类数据结构比较及其线程安全问题 1. Array(数组): 分配在连续内存中,不能随意扩展,数组中数值类型必须是一致的。数组的声明有两种形式:直接定义长度,然后赋值;直接赋值。 缺点:插入数据慢。 优点:性能高,数据再多性能也没有影响 特别注意:Array不是线程安全,在多线程中需要配合锁机 阅读全文
posted @ 2018-05-08 11:36 Yaopengfei 阅读(3290) 评论(2) 推荐(1) 编辑
摘要:一. 语法糖简介 语法糖也译为糖衣语法,是由英国计算机科学家彼得·约翰·兰达(Peter J. Landin)发明的一个术语,指计算机语言中添加的某种语法,这种语法对语言的功能并没有影响,但是更方便程序员使用。通常来说使用语法糖能够增加程序的可读性,从而减少程序代码出错的机会。 需要声明的是“语法糖 阅读全文
posted @ 2017-09-26 11:52 Yaopengfei 阅读(1349) 评论(1) 推荐(1) 编辑
摘要:一. 基本介绍 回忆: 最早接触到表达式目录树(Expression)可能要追溯到几年前使用EF早期的时候,发现where方法里的参数是Expression<Func<T,bool>>这么一个类型,当初不是很理解,只是知道传入lambda表达式使用即可,对于Expression和里面的Func<T, 阅读全文
posted @ 2017-09-06 20:45 Yaopengfei 阅读(2073) 评论(1) 推荐(4) 编辑
摘要:一. SQL开篇 1. where用法 1 #region 封装EF调用SQL语句查询 2 public static List<T> ExecuteQuery<T>(string sql, params SqlParameter[] pars) 3 { 4 return db.Database.S 阅读全文
posted @ 2017-08-10 11:57 Yaopengfei 阅读(1251) 评论(1) 推荐(0) 编辑
摘要:一. Linq开篇 1.Where用法 linq中where的用法与SQL中where的用法基本一致。 1 #region 01-where用法 2 { 3 //1. where用法 4 //1.1 查询账号为admin的用户信息 5 Console.WriteLine(" 1. where用法 " 阅读全文
posted @ 2017-08-07 22:19 Yaopengfei 阅读(2333) 评论(3) 推荐(1) 编辑
摘要:一. 简介 Lambda、Linq、SQL伴随着我的开发一年又一年,但它们三者并没有此消彼长,各自占有这一定的比重,起着不可替代的作用。 相信我们最先接触的应该就是SQL了,凡是科班出身的人,大学期间都会学习SQL Server数据库,当然也会学习SQL语言了(顺便吐槽一下,学校用SQL Serve 阅读全文
posted @ 2017-08-01 16:10 Yaopengfei 阅读(3424) 评论(2) 推荐(4) 编辑
摘要:一. 基本概念 1. 什么是特性? MSDN官方给出的定义时:公共语言运行时允许添加类似关键字的描述声明,叫做特性,它对程序中的元素进行标注,如类型、字段、方法和属性等。Attribute和Microsoft .Net Framework文件的元数据(metadata)保存在一起,可以用来向运行时描 阅读全文
posted @ 2017-06-28 08:37 Yaopengfei 阅读(1718) 评论(0) 推荐(0) 编辑
摘要:一. IO读写 这里主要包括文件的读、写、移动、复制、删除、文件夹的创建、文件夹的删除等常规操作。 注意:这里需要特别注意,对于普通的控制台程序和Web程序,将"相对路径"转换成"绝对路径"的方法不一致。 (1). 在web程序中,可以使用HttpContext.Current.Server.Map 阅读全文
posted @ 2017-06-11 20:49 Yaopengfei 阅读(2291) 评论(1) 推荐(0) 编辑
摘要:一. 泛型委托 所谓的泛型委托,即自定义委托的参数可以用泛型约束,同时内置委托Func和Action本身就是泛型委托。 将上一个章节中的Calculator类中的方法用自定义泛型委托重新实现一下。 1 public class Calculator2 2 { 3 //传统解决方案一:在该类中声明多个 阅读全文
posted @ 2017-06-11 16:18 Yaopengfei 阅读(1349) 评论(0) 推荐(0) 编辑
摘要:一. 委托发展史和基本用法 说起委托,每个人可能都会对他有不同的理解,结合实战中委托的使用,我对其理解是:委托和类一样,是用户的一个自定义类型,委托可以有参数、有返回值,委托的关键字是delegate,委托是方法的抽象,有了委托的存在,使得方法可以作为参数传递给另一个方法,同时调用委托的时候,委托所 阅读全文
posted @ 2017-06-07 21:27 Yaopengfei 阅读(2213) 评论(1) 推荐(2) 编辑
摘要:一. 覆盖/写 1. 关键字:new 2. 含义:子类继承父类中的普通方法,如果在子类中写了一个和父类中完全相同的方法,子类中会报警告(问是否显式的隐藏父类的中的方法),如果在子类中的方法前加上new关键字,则警告消失。 注意: * 虽然可以不使用 new 修饰符来隐藏成员,但将收到编译器警告。 如 阅读全文
posted @ 2017-06-04 11:46 Yaopengfei 阅读(2190) 评论(2) 推荐(0) 编辑
摘要:一. 面向对象思想 1. 面向过程(OP)和面向对象(OO)的区别: (1):面向过程就是排着用最简单的代码一步一步写下去,没有封装,当业务复杂的时候,改动就很麻烦了 (2):面向对象将复杂的业务分离出来几个类,然后将业务封装到类中的方法进行实现,很简洁。 2. 面向对象的三大特征 (1). 封装: 阅读全文
posted @ 2017-06-04 11:45 Yaopengfei 阅读(3642) 评论(2) 推荐(6) 编辑
摘要:一. 匿名类 1. 传统的方式给类赋值,需要先建一个实体类→实例化→赋值,步骤很繁琐,在.Net 3.0时代,微软引入匿名类的概念,简化了代码编写,提高了开发效率。 匿名类的声明语法: var obj=new {字段赋值}; 代码如下: 运行结果如下: 2. 匿名类的属性都是只读的 3. 匿名类的属 阅读全文
posted @ 2017-05-30 18:36 Yaopengfei 阅读(1227) 评论(0) 推荐(0) 编辑
摘要:一. 加载dll,读取相关信息 1. 加载程序集的三种方式 调用Assembly类下的三个方法:Load、LoadFile、LoadFrom。 1 //1.1 Load方法:动态默认加载当前路径下的(bin)下的dll文件,不需要后缀 2 Assembly assembly = Assembly.L 阅读全文
posted @ 2017-05-22 20:42 Yaopengfei 阅读(2741) 评论(0) 推荐(1) 编辑