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

织梦制作网站地图成都青白江网站建设

织梦制作网站地图,成都青白江网站建设,网站家建设培训学校,淮安市做网站C#4.0关于缺省参数的新特性#xff0c;相信大家都不会陌生。所谓缺省参数#xff0c;顾名思义#xff0c;就是在声明方法的某个参数的时候为之指定一个默认值#xff0c;在调用该方法的时候如果采用该默认值#xff0c;你就无须指定该参数。和很多语言层面特性#xff08…  C#4.0关于缺省参数的新特性相信大家都不会陌生。所谓缺省参数顾名思义就是在声明方法的某个参数的时候为之指定一个默认值在调用该方法的时候如果采用该默认值你就无须指定该参数。和很多语言层面特性语法糖的实现一样缺省参数也是编译器为我们玩的一个小花招。缺省参数最终体现为两个特殊的自定义特性OptionalAttribute和DefaultParameterValueAttribute 。 目录 一、缺省参数的用法 二、实现缺省参数的两个特性OptionalAttribute和DefaultParameterValueAttribute 三、直接通过OptionalAttribute和DefaultParameterValueAttribute 定义缺省参数   一、缺省参数的用法   比如下面一个TestMethod方法后面两个参数bar和baz就是缺省参数默认值分别为“Bar”和“Baz”。 static void TestMethod(string foo, string bar Bar, string baz Baz){ Console.WriteLine({0, -5} - {1, -5} - {2, -5}, foo, bar, baz);}   在调用TestMethod的时候我们自由地选择采用缺省的参数值或者覆盖该缺省值。 static void Main(string[] args){ TestMethod(Foo); TestMethod(Foo, Bar1); TestMethod(Foo, Bar1, Baz1);}   下面是输出结果 Foo - Bar - BazFoo - Bar1 - BazFoo - Bar1 - Baz1   缺省参数的使用有两个简单的限制其一是缺省参数的声明只能放在普通参数之后。如下代码中定义的TestMethod方法中缺省参数bar后面跟一个非缺省参数baz这样的代码是不能通过编译的编译错误信息为Optional parameters must appear after all required parameters。 上海徐汇企业网站设计与制作 static void TestMethod(string foo, string bar Bar, string baz){ Console.WriteLine({0, -5} - {1, -5} - {2, -5}, foo, bar, baz);}   但是缺省参数后面可以跟数组参数params参数实际上无论在什么情况下params参数都只能是最后一个声明的参数。关于缺省参数的声明的位置限制主要重载方法的识别机制决定的这一点大家都很容易理解。   缺省参数的另一个限制是指定的缺省值必须是一个常量这就实际上为作为缺省参数的数据类型作了限制——只能是系统定义的基元类型。下面定义的TestMethod方法中我们定义了一个DateTime类型的缺省参数并将参数缺省值作为DateTime.Now。由于DateTime.Now不是常量所以这样的代码也不能通过编译编译错误消息Default parameter value for date must be a compile-time constant。 static void TestMethod(DateTime date DateTime.Now){//Others...}   二、实现缺省参数的两个特性OptionalAttribute和DefaultParameterValueAttribute   为什么缺省参数的默认值只能接受常量呢如果你了解了缺省参数的本质这就不是一个问题。那么缺省参数究竟是如何实现的呢   和很多语言层面特性语法糖的实现一样缺省参数也是编译器为我们玩的一个小花招而真正编译后的东西都是我们再熟悉不过的玩意儿。当包含缺省参数的C#代码经过编译后缺省参数体现在两个特殊的自定义特性OptionalAttribute和DefaultParameterValueAttribute 。前者将参数标识为缺省参数后者指定其缺省值。 [ComVisible(true), AttributeUsage(AttributeTargets.Parameter, Inheritedfalse)]public sealed class OptionalAttribute : Attribute{}[AttributeUsage(AttributeTargets.Parameter)]public sealed class DefaultParameterValueAttribute : Attribute{public DefaultParameterValueAttribute(object value);public object Value {get; }}   对于最开始我们定义的TestMethod方法编译后的形式如下所示。 private static void TestMethod(string foo, [Optional, DefaultParameterValue(Bar)] string bar, [Optional, DefaultParameterValue(Baz)] strin上海闵行企业网站设计与制作g baz){//Others..}   正是因为缺省参数的默认值最终是作为DefaultParameterValueAttribute的参数存在的所以它必须是常量。   三、直接通过OptionalAttribute和DefaultParameterValueAttribute 定义缺省参数   既然缺省参数最终体现为OptionalAttribute和DefaultParameterValueAttribute 这两个特性我们是否可以直接通过它们来定义缺省参数呢答案是当然可以下面的代码一样可以正常执行。 static void Main(string[] args){ TestMethod(Foo); TestMethod(Foo,Bar1); TestMethod(Foo,Bar1,Baz1);}private static void TestMethod(string foo, [Optional, DefaultParameterValue(Bar)] string bar, [Optional, DefaultParameterValue(Baz)] string baz){//Others..}   如果调用含有缺省参数的方法并且没有显示指定该参数编译器在编译的时候会自动将默认值附加上去。对于上面的Main方法下面是与之等效的编译后代码。 private static void Main(string[] args){ TestMethod(Foo, Bar, Baz); TestMethod(Foo, Bar1, Baz); TestMethod(Foo, Bar1, Baz1);}   虽然说我们通过OptionalAttribute和DefaultParameterValueAttribute 这两个特性也可上海企业网站设计与制作以定义缺省参数但是当我们将缺省参数定义在普通参数之前是编译器不会报错。倒是方法中缺省参数实际上就相当于普通参数了。 static void Main(string[] args){//TestMethod(FooBaz);//上面的方法调用无效 TestMethod(Foo,Bar1,Baz1上海徐汇企业网站制作stylecolor:white; hrefhttp://www.93tj.com上海网站建设color: #800000;);}private static void TestMethod(string foo, [Optional, DefaultParameterValue(Bar)] string bar, string baz){//Others..}
http://wiki.neutronadmin.com/news/154342/

相关文章:

  • 建筑招聘网站哪个好深圳市有方科技有限公司
  • 美食制作网站模板免费下载自己做博客网站
  • 一个网站要多大的空间公司网站建设需要哪些设备
  • 新乡百度网站推广工具国外视觉差网站
  • 上海网站开发有限公司百度推广有哪些售后服务
  • 前端页面设计网站ppt免费下载模板网站
  • 户外媒体网站建设免费网站建设规划表
  • 国内做音乐网站做远程培训网站用什么系统
  • 服装企业网站源码河北高端建设网站
  • 安徽建站优化没有网站可以做seo排名吗
  • 做外贸的j交易网站网站套餐到期啥意思
  • 如何建单位网站大连seo排名
  • 网站前端是什么seo数据优化教程
  • 建设部网站39文件网站开发全程实例
  • 网站开发公司内部数据字典北京关键词优化报价
  • 博罗网站设计公司seo优化评论
  • 上海网站设计的公司做膜结构那个网站好
  • 网站县区分站点建设网站的前端和后端
  • 有做外贸的平台网站吗哪个好用?
  • 济南网站建设seo优化设计室内装修效果图
  • wordpress网站弹窗插件wordpress 模板 含数据
  • pc端网站建设哪里有做网站不给源代码
  • 建设银行网站的目的是什么wordpress查询码
  • 恐怖音乐怎么做的视频网站wordpress 用户 插件
  • 常州做网站公司有哪些中国建设银行官网站纪念币
  • 怎样做淘宝的导购网站推广建设网站学什么语言
  • 襄阳市建设工程造价管理站网站手机网站 幻灯片js
  • 站长之家官网查询深圳建立网站
  • 凤岗镇做网站卧龙区2015网站建设价格
  • 目前流行的app网站开发模式jeecms 怎么建设网站