C 方法解析分析和总结.docxVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C# 方法解析 “方法”是包含一系列语句的代码块。 程序通过“调用”方法并指定所需的任何方法参数来执行语句。 在 C# 中,每个执行指令 都是在方法的上下文中执行的。 最近在写一个反射调用时,需要通过反射来调用方法。想写一个通用的方法调用的通用函数,这就需要将方法各种形式考虑在内。 在这里只是对 C#4.0 的方法进行一次简单总结,也希望给大家一个清晰的认识。方法模板:可访问性 修饰符 返回值 方法名(参数列表){...} 可访问性: private protected internal public 方法修饰符: static abstract virtual/override 等返回值: 某种类型或无返回值 方法名:methodname 参数列表:这个有多种情况 C#4.0 中的方法,除了常见的方法,还有几种比较特殊的方法。(1)属性,其实属性的 get 和 set 生成了两个单独方法br 索引,我们平时用的很多,this[code]等,其实在 CLR 中,也生成了 get_Item 与set_Item 两个方法。我们获取索引时,就可以用这个两个方法名 + 参数列表,获得相应的索引。br 泛型方法,如: T CreateInstanceT(){...} 但是这些都可以通过一定的 规律转为通常方法来处理。但在写反射的时候一定要分析到这类问题。 因为方法签名的其他部分比较简单,这里只是针对方法的参数列表进行展开讨论。 参数有多种:普通的也不赘述,如:void Do(string Msg){}; 这里只是讲述几种特殊的 参数。 1、ref/out 如果不使用 ref/out,则传递的只是这些值的 Copy.传递的是引用类型的地址值,则将传递引用类型的地址值的一个 Copy,实际上就是新开一 个不同的内存变量来存储这个地址值的拷贝。而是用 ref/out,传递的还是引用类型的地址值,但是传递的是原来的哪个引用类型的地址值。 ref ref 关键字使参数按引用传递。其效果是,当控制权传递回调用方法时,在方法中对参数所做的任何更改都将反映在该变量中。若要使用 ref 参数,则方法定义和调用方法都必须显式使用 ref 关键字。 例子: /// summary /// ref 测试 /// /summary /// param name=count/param static void RefTest(ref int count) { count += 10; Console.WriteLine(In method count: {0},count); } 调用结果: //ref int count = 10; Console.WriteLine(Before calling method the count is : {0}, count);//输出: After calling method the count is : 10 RefTest(ref count); Console.WriteLine(After calling method the count is : {0}, count);//输出: After calling method the count is : 20 传递到 ref 参数的参数必须最先初始化。这与 out 不同,out 的参数在传递之前不需要显式初始化。 out out 关键字会导致参数通过引用来传递。这与 ref 关键字类似,不同之处在于 ref 要求变量必须在传递之前进行初始化。若要使用 out 参数,方法定义和调用方法都必须显式使用 out 关键字。例如: 例子: /// summary /// out 测试 /// /summary /// param name=count/param static void OutTest(out int count) { } 调用: //count += 10;//这样写,编译报错:使用了未赋值的参数count count = 10; Console.WriteLine(In method count: {0}, count); //out int count2; OutTest(out count2); Console.WriteLine(After calling method the count is : {0}, count2);//输 出:After calling method the count is : 10 注意情况: ref 和 out 关键字在运行时的处理方式不同,但在编译时的处理方式相同。 因此,如果一个方法采用 ref 参数,而另一个方法采用 out 参数,则无法重载这两个方法。 例如,从编译的角度来看,以下代码中的两个方法是

文档评论(0)

hao187 + 关注
官方认证
文档贡献者

该用户很懒,什么也没介绍

认证主体 武汉豪锦宏商务信息咨询服务有限公司
IP属地上海
统一社会信用代码/组织机构代码
91420100MA4F3KHG8Q

1亿VIP精品文档

相关文档