C#知识点

						知识点
开发工具与关键技术:VS2015和C#、MVC
作者:谭智聪 
撰写时间:2020年8月6日

C#、using的用法
(1)引用命名空间
using作为引入命名空间指令的用法规则为:using Namespace;
最常见的代码莫过于在程序文件的开头引入System命名空间,其原因在于System命名空间中封装了很多最基本最常用的操作,下面的代码对我们来说最为熟悉不过:using System;
这样,我们在程序中就可以直接使用命名空间中的类型,而不必指定详细的类型名称。using指令可以访问嵌套命名空间。
(2)创建命名空间别名
using为命名空间创建别名的用法规则为:
using alias = namespace | type;
其中namespace表示创建命名空间的别名;而type表示创建类型别名。例如,在.NET Office应用中,常常会引入Microsoft.Office.Interop.Word.dll程序集,在引入命名空间时为了避免繁琐的类型输入,我们通常为其创建别名如下:
using MSWord = Microsoft.Office.Interop.Word;
(3)强制资源清理
用途:清理非托管资源,不受GC控制的资源。Using结束后会隐式的调
Disposable方法。
用法:1、using(Class1 c=new Class1())
}//清理非托管不受GC控制的资源
但是当对象使用using关键字的时候,必须实现IDisposable接口。其实using的使用和try-catch-finaly中,在finaly代码域调用Disposable方法效果一样。注意Using不能使用多个不同的类

1.	Class1 f = new Class1();   
2.	         try   
3.	         {
                          //执行代码   
4.	         }   
5.	        catch()   
6.	         {
        
7.	             //异常处理   
8.	         }   
9.	        finally   
10.	         {
        
11.	             f.Disposable();   
12.	         } 

using 语句获取一个或多个资源,执行一个语句,然后处置该资源。
二、ViewData与ViewBag的区别
1、ViewData是字典类型,赋值方式以键值对的形式,通过key值读取对应的value, ViewData[“myName”]。
2、ViewBag是动态类型,使用时直接添加属性赋值点即可 ViewBag.myName。
3、ViewBag和ViewData只在当前Action中有效,等同于View。
4、ViewData和ViewBag 中的值可以互相访问,因为ViewBag的实现中包含了ViewData,ViewBag是对ViewData一个动态封装。
5、ViewData比ViewBag快;ViewBag更方便,在使用数据时不需要类型转换。

三、
(1)Vo
* VO是value object的缩写;
* 作用:它是为了页面显示取值方便。所以将数据封装为一个对象。这对象也就是我们说的VO;
* VO则主要用于逻辑层(Controllers)和表示层(Views)之间数据处理封装。
(2)分页

  • Skip 表示从第几条数据开始,也就是说在这之前有多少数据
  • Take 的意思是显示多少条数据,也就相当于我们常用的pagesize
  • 举例:Skip(1).Take(4)
  • 上面这段话句的意思是从第二条数据开始显示4条
    (3)prop和attr根本区别
    * 对于HTML元素本身就带有的固有属性,在处理时,使用prop方法。
    * 对于HTML元素通过我们自定义的DOM属性,在处理时,使用attr方法。
    (4)null和undefined的区别 相等但不全等
    1、null表示”没有对象”,object类型 即刻处不应该有值。
    典型用法是:
     作为函数的参数,表示该函数的参数不是对象。
     作为对象原型链的终点。
    2、undefined表示”缺少值”,undefined类型就是此处应该有一个值,但是还没有定义。
    典型用法是:
     变量被声明了,但没有赋值时,就等于undefined。例如:调用函数时,应该提供的参数没有提供,该参数等于undefined。
     对象没有赋值的属性,该属性的值为undefined。
     函数没有返回值时或者return后面什么也没有,返回undefined。
    (5)左连接实例
    旅客信息(常旅客号左连接)
	List<PassengerVo> listPassengerInfor = (from tbPassenger in myModel.B_PNRPassenger
							join tbFrequentPassenger in myModel.S_FrequentPassenger on tbPassenger.frequentPassengerID equals tbFrequentPassenger.frequentPassengerID
                            into temp
                            from tbTemp in temp.DefaultIfEmpty()
                            where tbPassenger.PNRID == PNRID
                             select new PassengerVo
    {
     
     frequentPassengerNo = tbTemp != null ? tbTemp.frequentPassengerNo : string.Empty
     }).ToList();

注意:使用左连接记得搭配三目运算符 结果可能包含空值。

你可能感兴趣的:(C#知识点)