博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C#中的out string temp是什么意思?【转】
阅读量:5257 次
发布时间:2019-06-14

本文共 1596 字,大约阅读时间需要 5 分钟。

C#中的out string temp是什么意思?【转】
 
out 关键字会导致参数通过引用来传递。这与 ref 关键字类似,不同之处在于 ref 要求变量必须在传递之前进行初始化。若要使用 out 参数,方法定义和调用方法都必须显式使用 out 关键字。例如:
class OutExample{     static void Method(out int i)     {         i = 44;     }     static void Main()     {         int value;         Method(out value);         // value is now 44     }}

 

 尽管作为 out 参数传递的变量不需要在传递之前进行初始化,但需要调用方法以便在方法返回之前赋值。
ref 和 out 关键字在运行时的处理方式不同,但在编译时的处理方式相同。因此,如果一个方法采用 ref 参数,而另一个方法采用 out 参数,则无法重载这两个方法。例如,从编译的角度来看,以下代码中的两个方法是完全相同的,因此将不会编译以下代码:
class CS0663_Example {     // compiler error CS0663: "cannot define overloaded      // methods that differ only on ref and out"     public void SampleMethod(out int i) {   }     public void SampleMethod(ref int i) {   }}

 

但是,如果一个方法采用 ref 或 out 参数,而另一个方法不采用这两类参数,则可以进行重载,如下所示:
View Code
class RefOutOverloadExample{     public void SampleMethod(int i) {   }     public void SampleMethod(out int i) {   }}

属性不是变量,因此不能作为 out 参数传递。
有关传递数组的信息,请参见使用 ref 和 out 传递数组。
示例
当希望方法返回多个值时,声明 out 方法很有用。使用 out 参数的方法仍然可以将变量用作返回类型(请参见 return),但它还可以将一个或多个对象作为 out 参数返回给调用方法。此示例使用 out 在一个方法调用中返回三个变量。请注意,第三个参数所赋的值为 Null。这样便允许方法有选择地返回值。

View Code
class OutReturnExample{     static void Method(out int i, out string s1, out string s2)     {         i = 44;         s1 = "I've been returned";         s2 = null;     }     static void Main()     {         int value;         string str1, str2;         Method(out value, out str1, out str2);         // value is now 44         // str1 is now "I've been returned"         // str2 is (still) null;     }

 

转载于:https://www.cnblogs.com/xiao-wei-wei/archive/2012/08/03/2621503.html

你可能感兴趣的文章
【转】代码中特殊的注释技术——TODO、FIXME和XXX的用处
查看>>
【SVM】libsvm-python
查看>>
Jmeter接口压力测试,Java.net.BindException: Address already in use: connect
查看>>
Leetcode Balanced Binary Tree
查看>>
Leetcode 92. Reverse Linked List II
查看>>
九.python面向对象(双下方法内置方法)
查看>>
go:channel(未完)
查看>>
[JS]递归对象或数组
查看>>
LeetCode(17) - Letter Combinations of a Phone Number
查看>>
Linux查找命令对比(find、locate、whereis、which、type、grep)
查看>>
路由器外接硬盘做nas可行吗?
查看>>
python:从迭代器,到生成器,再到协程的示例代码
查看>>
Java多线程系列——原子类的实现(CAS算法)
查看>>
在Ubuntu下配置Apache多域名服务器
查看>>
多线程《三》进程与线程的区别
查看>>
linux sed命令
查看>>
html标签的嵌套规则
查看>>
[Source] Machine Learning Gathering/Surveys
查看>>
HTML <select> 标签
查看>>
类加载机制
查看>>