以下两个方法有什么区别?
<pre>
static void Split(ArrayList source, ArrayList result1,
                ArrayList result2)
{
    if (source == null)
    {
        result1 = null;
        result2 = null;

return;
    }

result1.Add(null);
    result2.Add(null);
}

static void Split2(ArrayList source, out ArrayList result1,
                out ArrayList result2)
{
    if (source == null)
    {
        result1 = null;
        result2 = null;

return;
    }

result1.Add(null);
    result2.Add(null);
}
</pre>
想知道答案请看下文······

Split()与Split2()两个方法主体没有任何区别,只是方法Split2()的最后两个参数为out参数导致无法编译,编译器提示以下信息:

错 误    1    使用了未赋值的 out 参数“result1”    F:\Documents and Settings\linhen\My Documents\Visual Studio 2005\Projects\ConsoleApplication1\ConsoleApplication1\Program.cs    33    13    ConsoleApplication1
错 误    2    使用了未赋值的 out 参数“result2”    F:\Documents and Settings\linhen\My Documents\Visual Studio 2005\Projects\ConsoleApplication1\ConsoleApplication1\Program.cs    34    13    ConsoleApplication1
错 误    3    控制离开当前方法之前必须对 out 参数“result1”赋值    F:\Documents and Settings\linhen\My Documents\Visual Studio 2005\Projects\ConsoleApplication1\ConsoleApplication1\Program.cs    23    21    ConsoleApplication1
错 误    4    控制离开当前方法之前必须对 out 参数“result2”赋值    F:\Documents and Settings\linhen\My Documents\Visual Studio 2005\Projects\ConsoleApplication1\ConsoleApplication1\Program.cs    23    21    ConsoleApplication1

错误1、2是由于out 参数的值不会传递到 out 参数,所以必须在方法内部进行初始化。错误3、4则是由于在方法返回之前必须为 out 参数赋值。

转载于:https://www.cnblogs.com/SamZhang/archive/2007/07/11/814639.html

探讨C#的out关键字相关推荐

  1. C# 的关键字系列 (3 of n)

    这边文章主要探讨流程控制的关键字: 首先从最常用的for开始 1:初始i =0, 2:判断i<10 成立, 3:Console.WriteLine(i); 4:执行i++,转到step 2. 在 ...

  2. java finally的作用_java中finally关键字的特点和作用是什么

    java中finally关键字的特点和作用是什么 发布时间:2020-09-08 11:12:01 来源:亿速云 阅读:114 作者:小新 小编给大家分享一下java中finally关键字的特点和作用 ...

  3. 【C/C++ 关键字 存储类说明符】C/C++ 的mutable 关键字 忽略对该数据成员的常量性检查在const函数中修改变量值

    这里写目录标题 1. 引言 1.1 mutable关键字的简介 2. mutable关键字的设计意图 (The Design Intent of the mutable Keyword) 2.1 为什 ...

  4. ConcurrentProgramming:volatile/构造方法溢出/禁止重排序

    ConcurrentProgramming:volatile/构造方法溢出/禁止重排序 关键词 内存可见性原理(直接操作主存) 禁止指令重排原理(内存屏障,最终目的:直接操作主内存) 对volatil ...

  5. 2022进军阿里P6,6点面试经验总结

    前几天刚参加完蚂蚁金服的Java P6级的面试,一共参加了4面.面试归来,总结下阿里面试流程.面试过程.以及面试题目范畴.文末有阿里Java P6面试必考题与答案参考~ 阿里面试流程 第一轮:电话技术 ...

  6. 在技术招聘中,HR 如何识别候选人的“味道”?

    11月初 ShowMeBug 联合 CGL 在上海一连举办两场技术招聘活动,针对技术招聘这个问题,与 HR 共话程序员招聘中的难题,助力企业找到心仪的候选人.活动现场两位嘉宾各自从 HR 和技术面试官 ...

  7. 车载高速CAN(HighSpeed CAN)通信之CAN Bus Off

    本文主要以普及CAN通信基本原理为目的,如有从事相关领域或者有意从事车载嵌入式开发的读友们欢迎留言探讨. 本文含有关键字如下. CAN Bus Off,Bus Off DTC,Bus Off Reco ...

  8. volatile关键字之全面深度剖析

    引言 volatile这个关键字可能很多朋友都听说过,或许也都用过.在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果.在Java 5之后,volatile关键字 ...

  9. Java中的static关键字的用法

    1.静态方法 static:通常在一个类中定义一个方法为static,那就是说,无需本类的对象即可调用此方法 声明为static的方法有以下几条限制: (1)它们仅能调用其他的static方法. (2 ...

最新文章

  1. RHEL6.3 DNS高级技术二 通过DNS主从区域复制实现DNS View负载均衡和冗余备份
  2. 《通往奴役之路》读书笔记及读后感作文4800字
  3. python语言中文社区-python解决中文
  4. CodeForces - 1400F x-prime Substrings(AC自动机+dp)
  5. 稀疏数组与二维数组相互转化
  6. 树莓派 小屏幕_树莓派学习手动积累(1)
  7. 深度隐式表达系列 (一)
  8. 男人到了中年,还是没钱没人脉,就越要有这3种心理,总会有出息
  9. 有效解决办法:marven:Fatal error compiling: 无效的目标发行版: 11
  10. LINUX的VirtualBox安装Windows7
  11. MySQL 重置密码
  12. CreatePipe/CreateProcess
  13. 2021年网络安全学习路线指导(含视频教程)
  14. C# 解析JSON方法总结
  15. hairline!ios实现边框0.5px
  16. 霍夫丁------霍夫丁不等式
  17. 一般二阶线性非齐次微分方程的解与对应齐次方程的解的关系
  18. 从CM刷机过程和原理分析Android系统结构
  19. suse报:passwd: Module is unknown passwd: password unchanged 或 passwd: Permission denied
  20. 春分、冬至、黄道、赤道

热门文章

  1. oracle dg巡检,oracle dg状态检查及相关命令
  2. 转行进入测试一年有感
  3. 5分钟快速部署PESCMS TEAM 团队任务管理系统开发版
  4. C语言strcat()库函数的实现
  5. websocket.js
  6. hdu 4496 D-City 并查集
  7. uvc摄像头代码解析1
  8. Codeforces Round #256 (Div. 2)
  9. 新浪sae平台进行数据库的连接
  10. .NET : 在单元测试中使用外部文件作为数据源