当前位置: 首页 > news >正文

深圳网站设计哪好/太原seo

深圳网站设计哪好,太原seo,北京城乡建设网站首页,停止wordpress工作上用了c#有好几年了,其实对于c#版本傻傻的分不清楚,所以觉得有必要对c#的用法和理解的层面上再进一步。希望通过写博客,把自己看书的理解直接体现出来,当时没理解,也能在这里做个…
工作上用了c#有好几年了,其实对于c#版本傻傻的分不清楚,所以觉得有必要对c#的用法和理解的层面上再进一步。

希望通过写博客,把自己看书的理解直接体现出来,当时没理解,也能在这里做个记录,以后往回看也是可以的嘛。




  • C#1 中定义的产品类型       
class Product1{ //c#1string name;decimal price;public string Name{get{ return name;}//c#1,已经设置了获取变量方法,要想设置赋值变量,set必须是public}public decimal Price{ //创建变量的代码太复杂,封装应该是非常简单的任务get{ return price;}}public Product1(string name,decimal price){this.name = name;this.price = price;}public static ArrayList GetSampleProducts(){ArrayList al = new ArrayList ();//ArrayList没有提供与其内部内容相关的编译时的信息,一不小心增加个字符串信息也是很有可能的,而且编译器还不会报错//al.Add ("abc"); //如果没有注释,该句还是会通过编译al.Add (new Product1("West Side Story",9.99m));al.Add (new Product1("Assassins",14.99m));al.Add (new Product1("Frogs",13.99m));al.Add (new Product1("Sweeney Todd",10.99m)); return al;}public override string ToString (){return string.Format ("[Product1: Name={0}, Price={1}]", name, price);}}

总结:1.Product类中,Name,Price是只读属性,要想改变字段name,price的话,要通过Product(name,price)构造函数来改变咯。
2.Product类中,ArrayList是弱类型集合,对于加入的类型无限制,这才造成误操作,而且在运行的时候或者单元测试才会被发现,编译器在编译时是不会发现的
3.我学习C#的时候应该是c#3,4之间,原来C#1也有这么个过程,就像我们学习过程,看回以前自己写的代码,会发出“tnnd,这是谁写的代码?”的感叹啊。
  • C#2 强类型集合,私有属性赋值
class Product2{string name;decimal price;public string Name{get{ return name;}//c#1,已经设置了获取变量方法,要想设置赋值变量,set必须是publicprivate set{ name = value;}//c#2,设置set方法为private}public decimal Price{ //c#1,创建变量的代码太复杂,封装应该是非常简单的任务get{ return price;}private set{  price=value;}}public Product2(string name,decimal price){//this.name = name; //c#1,赋值到变量Name = name; //c#2,直接赋值到属性//this.price = price; Price = price; }public static List<Product2> GetSampleProducts(){//ArrayList al = new ArrayList ();//c#1,ArrayList没有提供与其内部内容相关的编译时的信息,一不小心增加个字符串信息也是很有可能的,而且编译器还不会报错//al.Add ("abc"); //c#1,如果没有注释,该句还是会通过编译List<Product2> al=new List<Product2>(); //c#2,强类型集合,妈妈再也不用担心我会加入乱七八糟的东西啦al.Add (new Product2("West Side Story",9.99m));al.Add (new Product2("Assassins",14.99m));al.Add (new Product2("Frogs",13.99m));al.Add (new Product2("Sweeney Todd",10.99m)); return al;}public override string ToString (){return string.Format ("[Product2: Name={0}, Price={1}]", name, price);}}

总结:1.C#2,属性的getter,setter终于有访问修饰符啦,果断private setter,构造函数直接赋值到属性啦。
2.C#2,List<Product>告诉你,你别乱来啊,它在编译时就告诉编译器,列表中只能包含Product。

  • C#3 自动实现的属性,增加的结合,简化的对象初始化
class Product3{/*string name;decimal price;public string Name{get{ return name;}//c#1,已经设置了获取变量方法,要想设置赋值变量,set必须是publicprivate set{ name = value;}//c#2,设置set方法为private}public decimal Price{ //c#1,创建变量的代码太复杂,封装应该是非常简单的任务get{ return price;}private set{  price=value;}}public Product2(string name,decimal price){//this.name = name; //c#1,赋值到变量Name = name; //c#2,直接赋值到属性//this.price = price; Price = price; }*/public string Name{ get; private set;}public decimal Price{ get; private set;}public Product3(string name,decimal price){Name = name; Price = price; }public Product3(){}public static List<Product3> GetSampleProducts(){/*List<Product3> al=new List<Product3>(); //c#2,强类型集合,妈妈再也不用担心我会加入乱七八糟的东西啦al.Add (new Product3("West Side Story",9.99m));al.Add (new Product3("Assassins",14.99m));al.Add (new Product3("Frogs",13.99m));al.Add (new Product3("Sweeney Todd",10.99m)); return al;*/return new List<Product3>{new Product3{Name="West Side Stroy",Price=9.99m},new Product3{Name="Assassins",Price=14.99m},new Product3{Name="Frogs",Price=13.99m},new Product3{Name="Sweeney Todd",Price=10.99m}};}public override string ToString (){return string.Format ("[Product1: Price={0}, account={1}]", Name, Price);}}

总结:1.封装属性的方法更加简便
2.简化初始化
3.虽然相比Lambda表达式来说,可能有点小儿科,但是也是减少很多公共的代码嘛

  • C#4 命名参数
class Product4{ //c#4readonly string name; //设置变量不可变,只读(只读属性,没有快捷方式)readonly decimal price;public string Name{get{ return name;}}public decimal Price{ get{ return price;}}public Product4(string name,decimal price){this.name = name;this.price = price;}public Product4(){}public static List<Product4> GetSampleProducts(){/*return new List<Product4>{new Product4{Name="West Side Stroy",Price=9.99m},new Product4{Name="Assassins",Price=14.99m},new Product4{Name="Frogs",Price=13.99m},new Product4{Name="Sweeney Todd",Price=10.99m}};*/return new List<Product4> {new Product4(name:"West Side Stroy",price:9.99m),//使用命名参数new Product4(price:14.99m,name:"Assassins"),new Product4(name:"Frogs",price:13.99m),new Product4(name:"Sweeney Todd",price:10.99m)};}public override string ToString (){return string.Format ("[Product1: Name={0}, Price={1}]", name, price);}}

总结:1.为了让类的私有化属性不能公开地改变,只读属性只能通过以上方式定义
2.然而因为只读属性,那么只能通过调用构造方式来初始化了。
3.书中例子使用以上例子来说明C#4的新特性命名参数有些牵强了,或许,拿默认参数和命名参数来举例会更好,当参数出现多个,并且类型相同或有一个参数为null的时候,效果更明显。

http://www.jmfq.cn/news/5020759.html

相关文章:

  • 自己做的小网站分享/网站宣传推广策划
  • 做网站推广见客户的话术/seo推广是做什么的
  • 郑州网站设计网站/营销策略的概念
  • 自己做苹果下载的网站/网络营销岗位描述的内容
  • 欧亚专线快递查询/如何优化网站推广
  • 平面设计培训素材/优化方案怎么写
  • 怎么免费建自己的网站/搜索引擎推广培训
  • 智慧团建学生登录入口官网/广州seo技术优化网站seo
  • 南通市港闸区城乡建设局网站/互联网营销成功案例
  • 中铁建设集团公司门户/seo查询系统源码
  • 辽宁省城乡住房和建设厅网站/免费做网站怎么做网站链接
  • 婚庆网站建设/成都网站关键词推广
  • wordpress企业模板破解/网站优化公司推荐
  • 武汉网站建设的有哪些公司/google安卓手机下载
  • 国内阿里网站建设/最新营销模式有哪些
  • 太原网站建设优化/今日舆情热点
  • 网站没备案会怎么样/沈阳seo排名优化推广
  • 企业官网建站系统/国内最好的搜索引擎
  • 动态网站开发工程师 asp/网上推广怎么收费
  • 网站单页推广/新媒体营销成功案例
  • 没网站做推广/什么平台可以打广告做宣传
  • 个人工作室经营范围/福建seo优化
  • 武汉建立网站营销设计/中央下令全国各地核酸检测
  • 邯郸事件最新消息新闻/班级优化大师的利和弊
  • 蚌埠网站制作/软文广告经典案例短的
  • 博彩导航网站可以做吗/公司seo是指什么意思
  • 百度网站怎么做的/推广网页
  • 网站建设的资金风险/免费建一个自己的网站
  • 焦作做网站推广/网站推广优化方式
  • 平陆县做网站/江门网站定制多少钱