基础mvc james part1新语法本章中主要讲解.Net框架性开发者可以使用提高编程_第1页
基础mvc james part1新语法本章中主要讲解.Net框架性开发者可以使用提高编程_第2页
基础mvc james part1新语法本章中主要讲解.Net框架性开发者可以使用提高编程_第3页
基础mvc james part1新语法本章中主要讲解.Net框架性开发者可以使用提高编程_第4页
基础mvc james part1新语法本章中主要讲解.Net框架性开发者可以使用提高编程_第5页
已阅读5页,还剩9页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

本章中主要讲解.NetAuto-Implemented隐式类型类&方系统内置委托Func/ Predicate(bool(T))/Comparison(intLambdaStandardqueryLINQMvc浏览器请求服务器的某个控制器类的Action方法,方法中可以调用业务层等代码处理业务,并产生视图引擎,视图引擎会找到对应视图,并将数据“填充到“视图上对应的位置,最终产生整个页面的编译器会在编译的时候,按照C#语法检查代码,C#语定变量只能调用其类型的成员,如果是属性的目的:封装字段,控制1.读写权限及2.字段的规则(如:范围。但平时,主要是用来封装读写权限。intid;//字段intid;//字段publicintId属性{get{returnid;}set{id=value;}publicintId{get;set;}publicpublicintId{get;set;}publicintAge{get;set;}publicstringName{get;set;编译后,也生成了对应的属性语法(getset方法)但是编译生成的代码也有一个显而易见的缺点,语法太完整,编译后的程序比较大intintage11;//隐式类型:varvarvarage1varname="vardog=newage1=name=" dog.Id=11;varvar初始化表达式不能是函数和null查看源码:varList<Dog>List<Dog>{List<Dog>list=newList<Dog>();for(inti=0;i<10;i++){Dogd=newDog();d.Id=i;d.Name="Ruiky"+i;d.Age=i*2;d.Toy.ToyId=i;}return}List<Dog>{List<Dog>list=newList<Dog>();for(inti=0;i<10;i++){Dogd=new{Id=Name="Ruiky"+i,Age=i*2,ToynewDogToy()//{ToyId=ToyName狗狗玩具}}return}List<Dog>{List<Dog>list=newnewDog()Id=1,Name="RuikyAge=1,ToyToyId=1,ToyName="小球"}},newDog()Id=1,Name="RuikyAge=1,ToyToyId=1,ToyName="小球"}},newDog()Id=1,Name="RuikyAge=1,ToyToyId=1,ToyName="小球"}},newDog()Id=1,Name="RuikyAge=1,ToyToyId=1,ToyName="小球"}},newDog()Id=1,Name="RuikyAge=1,ToyToyId=1,ToyName="小球"}}return}Dog[]Dog[]dogs=newDog()Id=1,Name="Ruiky",Age=1,ToynewDogToyToyId=1,ToyName="小球"}},newDog()Id=1,Name="Ruiky",Age=1,ToynewDogToyToyId=1,ToyName="小球"}},newDog()Id=1,Name="Ruiky",Age=1,ToynewDogToyToyId=1,ToyName="小球"}},newDog()Id=1,Name="Ruiky",Age=1,ToynewDogToyToyId=1,ToyName="小球"}},newDog()Id=1,Name="Ruiky",Age=1,ToynewDogToyToyId=1,ToyName="小球"}}类varvarobj={Id=Name="Ruiky",Age=2编译器自动为这个【类】创建了一个无命名空间的类型在new关键字处,创建该类对编译器创建的类结当出现“相同”的类的时候,编译器只会创建一个编译器如何区分类是否相同?void{}void{}如,现在为线程指定要执行的方法的时候,就可以使用方法了在编译后,会为每个方法创建一个私有的静态方法,然后将此静态方法传给委托对public它至少有一个参数this关键字第一个参数不能有任何其他修饰符publicpublicstaticclass{publicstaticstringSayHi(thisDog{returnstring.Format("哈~~~我叫{0}!",}}Dogd=newDog()Id=1,Name="0094",Age=ToynewDogToy()ToyId=1,ToyName="小骨头stringstrd.SayHi();//d就作为第一个参数传到了扩展方法中编译后:stringstr=DogExtention.SayHi(d);方法所在名空间。ExtentionStringExtensionttributenull,但是在这个扩展方法中,如果了第一个参数,则会报“空指针异常。stringstr=d.SayHi();思考:如果Dog类中本身就包含SayHi方法,那会怎么样?DogDogidIComparer<Dog>口的Compare方法,来返回正整数/0/负整数。实现类(比较器Sort使用泛型委托+方法实现List<T>Comparison<T>publicpublicvoidSort(Comparison<T>Comparison<T>publicpublicdelegateintComparison<inT>(Tx,TpublicdelegateTResultFunc<outpublicdelegateTResultFunc<inT,outTResult>(T注:输入泛型参数-in16-outSystem.Action代表无返回类型的//list.ForEachpublicdelegatevoidAction<inT>(Tobj);publicdelegatevoidAction<inT1,inT2>(T1arg1,T2System.Predicate<T>代表返回bool类型的委托 publicdelegateboolPredicate<inT>(Tobj);parison<T>int类型的委托publicdelegateintComparison<inT>(Tx,Ty);in////in outpublicdelegateT2DgSay<inT,outT2>(TLambda回顾,发现上面的代码,需要传一个方法,写起来特别别扭。能否有简化的语法呢?有!Lambda表达式。LambdaList<Dog>List<Dog>list=//list.FindAll(delegate(Dogd){returnd.Id>2;//1.list.FindAll(d=>d.Id>2);//goesli

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论