【C#学习】31委托,Lambda表达式,LINQ
文章目录
委托
1.什么是委托?
委托是类类型,是一种特殊的类,它表现在:
(1)功能特殊:不是反映现实事物,而是 “包裹” 着一些方法,通过委托实例【间接调用】方法;委托是方法的封装器/包装器;程序上下文固定,但在某个关键部分,调用哪个函数是不确定的,又不想让函数之间产生紧耦合关系,就可用委托来进行间接/可替换调用
(2)声明方法特殊
2.怎么使用委托?
3.泛型委托
(1)Action<>委托,Func<>委托
见上节
(2)自定义泛型委托
Lambda表达式
1.方法与Lambda表达式之间的关系
Lambda表达式声明:
(1)匿名方法
(2)InLine方法:在调用的时候才去声明的方法(随调用,随声明)
2.把一个Lambda表达式赋值给一个委托类型的变量
把一个Lambda表达式赋值给一个委托类型的变量,是未来非常常用的语法,可理解为Lambda表达式求值完之后是一个委托类型的实例
3.把一个Lambda表达式"喂"给一个委托类型的参数
函数的形参本身也是一种变量,如果一个函数具有委托类型的参数,在调用该方法时,是否可以把Lambda表达式作为实参进去呢?
当然可以
LINQ
LINQ:.NET Language Integrated Query
- Language:指C#,VB,F#等
- Query:查询(多是数据库)
- Integrated:在没有LINQ之前,如果想要查询数据库,必须要用SOL sever代码,不会就去学;有了LINQ之后,程序员在进行一些不是很复杂的数据库查询操作时(不止数据库查询),就不必再去专门学习SOL sever,运用LINQ,在程序运行时,它会把查询逻辑所用的 C#代码 翻译成 SQL sever 代码,然后传到远端的SQL中,把查询出来的东西形成一组对象,让我们来操作对象,这个过程就是 Integarted
但是利用LINQ性能会有所降低,所以还是很建议掌握 SQL sever