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

做自媒体常用的图片网站天津seo排名

做自媒体常用的图片网站,天津seo排名,做网站的要到处跑吗,衡水做网站改版今天在写项目的时候用到了out,ref和params,想到我当时刚开始学的时候总是搞不清out,ref的区别和到底是么时候才能用着他们,params什么时候用才能事半功倍。下面就根据官方文档和我的理解给大家分享下: 想要知道什么时候用到他们就…

今天在写项目的时候用到了out,ref和params,想到我当时刚开始学的时候总是搞不清out,ref的区别和到底是么时候才能用着他们,params什么时候用才能事半功倍。下面就根据官方文档和我的理解给大家分享下:

  想要知道什么时候用到他们就必须先弄明白他们到底是什么,提到他们哥三个那就要说说方法参数了,如果在为方法声明参数时未使用 ref 或 out,则该参数可以具有关联的值。可以在方法中更改该值,但当控制传递回调用过程时,不会保留更改的值。通过使用方法参数关键字,可以更改这种行为。下面的例子都是自己根据对比的方式展示给大家的

1)ref 关键字使参数按引用传递。其效果是,当控制权传递回调用方法时,在方法中对参数所做的任何更改都将反映在该变量中。若要使用 ref 参数,则方法定义和调用方法都必须显式使用 ref关键字 eg:

class RefExample
{static void Method(ref int i){i = 44;}static void Main(){int val = 0;Method(ref val);//  现在val是44
    }
}//下面不用ref
class RefExample
{static void Method( int i){i = 44;}static void Main(){int val = 0;Method(val);// 现在val是0
    }
}

2)out 关键字会导致参数通过引用来传递。这与 ref 关键字类似,不同之处在于 ref 要求变量必须在传递之前进行初始化。若要使用 out 参数,方法定义和调用方法都必须显式使用 out关键字。eg:

class OutExample
{static void Method(out int i){i = 44;}
static void Method(ref int i){i = 44;}
static void Method(int i){i = 44;}static void Main(){int value;Method(value);//在编译的时候都会报错:错误 CS0165: 使用了未赋值的局部变量“value”
        Method(refvalue);//在编译的时候都会报错:错误 CS0165: 使用了未赋值的局部变量“value”Method(out value);// value 现在是 44
    }
}




3)params 关键字可以指定在参数数目可变处采用参数的方法参数。

在方法声明中的 params 关键字之后不允许任何其他参数,并且在方法声明中只允许一个 params 关键字。

// cs_params.cs
using System;
public class MyClass 
{public static void UseParams(params int[] list) {for (int i = 0 ; i < list.Length; i++){Console.WriteLine(list[i]);}Console.WriteLine();}public static void UseParams2(params object[] list) {for (int i = 0 ; i < list.Length; i++){Console.WriteLine(list[i]);}Console.WriteLine();}static void Main() {UseParams(1, 2, 3);UseParams2(1, 'a', "test"); // An array of objects can also be passed, as long as// the array type matches the method being called.int[] myarray = new int[3] {10,11,12};UseParams(myarray);}
}//输出//1
//2
//3//1
//a
//test//10
//11
//12

上面这个例子是在msdn上剪切的。但是在使用params的时候注意的是,在有多于一个参数的情况下,params必须放在最后面,不然会编译不通过的。

1>当我们频繁传递大型参数的时候,比如说DataTable、DataSet...的时候,会节省好多内存资源。(ref out 修饰的参数是传递引用(指针)的,传递引用的话 不至于你每次都去开辟另外一块内存来处理

2>当我们想得到方法多样化的处理结果的时候,而我们又不愿意复杂化方法所返回的结果,那么我们可以在方法里定义多个ref 或者 out,以期得到丰富的结果。比如说,我们调用一个方法,要同时得到string、int、double、bool、Array...等几种不同类型的结果,而return返回object又很复杂的时候,ref 和 out的处理效果,看上去自己会很帅...

转载于:https://www.cnblogs.com/smallcup/archive/2012/04/09/2438471.html

http://www.lbrq.cn/news/2748781.html

相关文章:

  • 菜鸟app制作教程北京seo产品
  • 寿光做网站手机百度如何发布作品
  • 做按摩网站多少钱郑州seo优化公司
  • 晋中市住房保障和城乡建设局网站百度网盘app下载安装手机版
  • wordpress添加视频插件成都排名seo公司
  • 四川省建设局网站杭州网站建设技术支持
  • 怎样优化网站百度一下官网首页
  • ip查询网站备案查询相亲网站排名前十名
  • app程序开发定制网站免费网站免费优化优化
  • 响应式网站排名如何seo是搜索引擎优化吗
  • 蚌埠seo推广班级优化大师使用指南
  • 两栏式网站静态网页设计与制作
  • 项目网站开发网页制作软件有哪些
  • 有什么软件可以做网站企业网站的在线推广方法有
  • 小型网站制作百度小程序seo
  • 三亚哪里做网站电子商务平台建设
  • b2c网站代表和网址海外短视频软件
  • 淘宝客怎么建设网站排名优化软件
  • 夺宝网站是怎么做推广的免费的发帖收录网站
  • 有了域名怎么做网站百度用户服务中心
  • 泉州商城网站开发设计宁德市中医院
  • 杭州做网站比较好的公司上海网站seo外包
  • 沈阳手机网站建设如何做好网络推广
  • qq免费搭建网站新媒体运营工作是什么
  • 打造对外宣传工作平台网站建设网站seo系统
  • 做淘宝有没有店小秘类型的网站网站关键词优化公司
  • 新手学做网站pdfhtml网页制作软件
  • 温州建设网站google play 应用商店
  • 定制开发一般多少钱搜索seo优化托管
  • 品牌网站建设公司太原百度公司地址
  • 7 索引的监控
  • Flink作业执行的第一步:DataFlow graph的构建
  • implement libwhich for Windows
  • 基于Transformer的机器翻译——模型篇
  • 软件的终极:为70亿人编写70亿个不同的软件
  • SpringSecurity(一)入门