关于C#高阶知识捡漏
高手掠过!仅仅是整理一下
自动属性: C#自动属性可以避免原来这样我们手工声明一个私有成员变量以及编写get/set逻辑
//Demo:
public class User
{
public int Id { get; set; }
public string Name { get; set; }
public int Age { get; set; }
}
匿名类:
var v = new { Amount = 108, Message = "Hello" };
对象初始化器,集合初始化器:
代码如下:
List<Person> people = new List<Person>{
new Person { FirstName = "Scott", LastName = "Guthrie", Age = 32 },
new Person { FirstName = "Bill", LastName = "Gates", test02 = 85},
new Person { FirstName = "Susanne", Age = 32 },
null,
};
Person person = new Person() { FirstName = “Scott”, LastName = “Guthrie”, test02 = 56 };
扩展方法:
1 namespace ConsoleApplication2
2 {
3 public static class StringDemo
4 {
5 /// <summary>
6 /// 扩展方法
7 /// </summary>
8 /// <param name="txt"></param>
9 /// <param name="str">要传入的数据</param>
10 /// <returns></returns>
11 public static string strSet(this string txt, string str)
12 {
13 ///默认 扩展方法的使用必须是 同一 命名空间下
14 ///注意扩展方法 满足 静态类 静态方法
15 return str;
16
17 }
18 }
19 public class Demo
20 {
21 public string Demostring()
22 {
23 string str="Demmo";
24 return str.strSet(str);
25 }
26 }
27 }
Lambda表达式:
在介绍lamada表达式之前,先要说一下委托:
委托是一个类型,指向一个方法的指针(安全的函数指针)
代码如下:
1 /// <summary>
2 /// delegate 编译时生成一个class
3 /// </summary>
4 /// <param name="num1"></param>
5 /// <param name="num2"></param>
6 /// <returns></returns>
7 public delegate string number(string num1, string num2);
8 public class Demo
9 {
10 public string test()
11 {
12 string number1 = "number1";
13 string number2 = "number2";
14 //以下会逐过程演化 直至 Lambda
15 //方法一
16 //number lo = new number(Demostring);
17 //方法二
18 //number lo = delegate(string num1, string num2) { return num1 + num2; };
19 //方法三
20 //number lo=(string num1, string num2)=>{return num1 + num2;}; // => 等于 goes to
21 //方法四
22 number lo = (num1, num2) => { return num1 + num2; };
23 return lo(number1, number2);
24
25 //如果需要自定义委托,推荐使用 系统委托
26 //最常用的委托区别
27 Func<> //具有返回值
28
29 Action<>//没有返回值
30
31
32 }
33 public string Demostring(string number1, string number2)
34 {
35 return number1 + number2;
36 }
37
38 }
几种系统委托的详解:
<>里的out代表函数返回值类型;
<>里的in 代表函数的输入参数类型;
关于C#高阶知识捡漏的更多相关文章
- C#后台架构师成长之路-高阶知识体系核心
了解了这些东西,熟悉了运用基本都是高工级别的了,其他修修补补就行了.... 1.三种预定义特性:attributeUsage.Conditional.obsolete,允许创建自定义特性,派生自Sys ...
- ES6中的高阶函数:如同 a => b => c 一样简单
作者:Sequoia McDowell 2016年01月16日 ES6来啦!随着越来越多的代码库和思潮引领者开始在他们的代码中使用ES6,以往被认为是"仅需了解"的ES6特性变成了 ...
- Cloudera Hadoop 5& Hadoop高阶管理及调优课程(CDH5,Hadoop2.0,HA,安全,管理,调优)
1.课程环境 本课程涉及的技术产品及相关版本: 技术 版本 Linux CentOS 6.5 Java 1.7 Hadoop2.0 2.6.0 Hadoop1.0 1.2.1 Zookeeper 3. ...
- C#函数式编程-高阶函数
随笔分类 -函数式编程 C#函数式编程之标准高阶函数 2015-01-27 09:20 by y-z-f, 344 阅读, 收藏, 编辑 何为高阶函数 大家可能对这个名词并不熟悉,但是这个名词所表达的 ...
- js高阶函数应用—函数防抖和节流
高阶函数指的是至少满足下列两个条件之一的函数: 1. 函数可以作为参数被传递:2.函数可以作为返回值输出: javaScript中的函数显然具备高级函数的特征,这使得函数运用更灵活,作为学习js必定会 ...
- React 精要面试题讲解(五) 高阶组件真解
说明与目录 在学习本章内容之前,最好是具备react中'插槽(children)'及'组合与继承' 这两点的知识积累. 详情请参照React 精要面试题讲解(四) 组合与继承不得不说的秘密. 哦不好意 ...
- 迈向高阶:优秀Android程序员必知必会的网络基础
1.前言 网络通信一直是Android项目里比较重要的一个模块,Android开源项目上出现过很多优秀的网络框架,从一开始只是一些对HttpClient和HttpUrlConnection简易封装使用 ...
- Python开发——函数【装饰器、高阶函数、函数嵌套、闭包】
装饰器 装饰器本质就是函数,为其他函数添加附加功能. 原则: 不修改被修饰函数的源代码 不修改被修饰函数的调用方法 装饰器知识储备:装饰器 = 高阶函数 + 函数嵌套 + 闭包 案例:求函数运行时间! ...
- Python之旅Day3 文件操作 函数(递归|匿名|嵌套|高阶)函数式编程 内置方法
知识回顾 常见五大数据类型分类小结:数字.字符串.列表.元组.字典 按存值个数区分:容器类型(列表.字典.元组) 标量原子(数字.字符串) 按是否可变区分:可变(列表.字典) 不可变(数字.字符串.元 ...
- python递归,装饰器,函数, 高阶函数
在函数内部,可以调用其它函数,如果一个函数在内部调用自身本身,这个函数就是递归函数 递归特性:1.必须有一个明确的结束条件 2.每次进入更深一层递归时,问题规模比上次递归都有所减少(10-8-5等) ...
随机推荐
- vue去除富文本的标签和样式
vue利用正则去除富文本的标签和样式 ts: const removeHtmlStyle =(html :any)=> { let relStyle = /style\s*?=\s*?(['&q ...
- dcat-admin主题
1.白色主题 admin设置: css /*对于在表单中使用grid列表时点击按钮时没有提示和报错,是因为 显示的html与当前弹框错位了,并隐藏在当前弹框下*/ .popover{ z-index: ...
- 01爬取豆瓣网电影数据进行numpy的练习
level 2:10.案例:编写爬虫爬取豆瓣电影排行榜(电影名称,评分),保存为csv文件 a.用numpy加载csv数据 b.把评分列转换成float64类型 c.计算电影的平均评分 d.求评分最高 ...
- c-->extern关键字的使用
extern关键字的使用 作用:声明外部符号(使用其他文件的全局变量) 例子: 源文件: test.c #include <stdio.h> extern int year;//使用ext ...
- Vmware-workstation - Centos8.0扩容磁盘空间 / 目录
1. 软件版本 vmware workstation 15 pro 虚拟机: centos8.0 2.将虚拟机关机选择扩容到多大 3. 进入操作系统,执行lsblk查看sda盘的情况.下图所示,需要 ...
- 原始的jdbc
jdbc的概念 什么是jdbc? jdbc是java数据库连接.为多种关系型数据库提供统一的访问. jdbc的操作步骤 导入jar包 加载驱动 获取数据库连接 获取执行者对象 执行SQL语句 处理结果 ...
- ZIAO日报 202302
2023.2 2023年2月14日 10:23 2023.2.14 继续读<Multi-View Transformer for 3D Visual Grounding>,读到了relat ...
- 关于webpack 开启代理proxy后,接口看不到代理地址的问题。
今天在项目中发现, 明明在proxy里代理了 接口地址确不是10.10.11.106/front/xxxxxx.这是为啥呢?changeOrigin的修改也是一样,在网络请求中发现host还是没改.这 ...
- gird 布局控制元素都显示在一行
gird 布局控制元素都显示在一行 <ul class="list"> <li v-for="(li, index) in list" :ke ...
- demo code
using System.Reflection; // 引用这个才能使用Missing字段 namespace hello{ public partial class Form1 : Form ...