c#函数中ref/out如何重载
2012-06-26 09:56
246 查看
• ref / out 在大部分情况下是标识的一部分!
你可以重载一个ref型参数和一个普通参数
你可以重载一个out型参数和一个普通参数
你不可以重载一个ref型参数和一个out型参数
sealed class Overloading
{
void Allowed( int parameter)
{ ... }
void Allowed(ref int parameter)
{ ... }
//正确,重载一个ref型参数和一个普通参数
void AlsoAllowed( int parameter)
{ ... }
void AlsoAllowed(out int parameter)
{ ... }
//正确,重载一个out型参数和一个普通参数
void NotAllowed(ref int parameter)
{ ... }
void NotAllowed(out int parameter)
{ ... }
//错误,不能重载一个ref型参数和一个out型参数
}
ref和out修饰符可以是一个函数的标识。但是你不能同时重载ref和out型参数。ref和out修饰符在某种意义上是“安全的“,因为只有ref型实参才能传递给ref型函数参数,只有out型实参才能传递给out型函数参数。但是,当调用函数的时候,你会非常容易忘记ref和out修饰符,所以最好不要重载ref和out型参数。例如:
sealed class Overloading
{
public static void Example(int parameter)
{ ... }
public static void Example(ref int parameter)
{ ... }
static void Main()
{
int argument = 42;
Example(argument);//在这儿非常容易忘记ref修饰符
}
}
你可以重载一个ref型参数和一个普通参数
你可以重载一个out型参数和一个普通参数
你不可以重载一个ref型参数和一个out型参数
sealed class Overloading
{
void Allowed( int parameter)
{ ... }
void Allowed(ref int parameter)
{ ... }
//正确,重载一个ref型参数和一个普通参数
void AlsoAllowed( int parameter)
{ ... }
void AlsoAllowed(out int parameter)
{ ... }
//正确,重载一个out型参数和一个普通参数
void NotAllowed(ref int parameter)
{ ... }
void NotAllowed(out int parameter)
{ ... }
//错误,不能重载一个ref型参数和一个out型参数
}
ref和out修饰符可以是一个函数的标识。但是你不能同时重载ref和out型参数。ref和out修饰符在某种意义上是“安全的“,因为只有ref型实参才能传递给ref型函数参数,只有out型实参才能传递给out型函数参数。但是,当调用函数的时候,你会非常容易忘记ref和out修饰符,所以最好不要重载ref和out型参数。例如:
sealed class Overloading
{
public static void Example(int parameter)
{ ... }
public static void Example(ref int parameter)
{ ... }
static void Main()
{
int argument = 42;
Example(argument);//在这儿非常容易忘记ref修饰符
}
}
相关文章推荐
- C#中 params out 和 ref之间都有什么用哦? 之间的区别如何?
- C#函数参数传送之out与ref的应用
- C#函数传参的out与ref的应用(转)
- C# 函数引用传递(址传递)ref、out以及值传递之间的运行效率问题
- C#值类型与引用类型、 out 、 ref、 params 参数、函数重载、数组为函数参数或返回值
- c#中webservice函数如何实现重载
- C#中函数参数的形参和实参即加ref 或加 out 与全部不加
- C#函数传参的out与ref的应用
- 实习总结:c#开发之旅(二)善用ref和out,让函数使用起来更方便。
- 【C#基础】方法及其调用、构造方法、out与ref参数及其返回值、方法重载、静态方法等简单介绍
- C#函数参数传送之out与ref的应用
- 实习总结:c#开发之旅(二)善用ref和out,让函数使用起来更方便。
- C#函数传参的out与ref的应用
- 【C#基础】方法及其调用、构造方法、out与ref参数及其返回值、方法重载、静态方法等简单介绍
- C#函数传参的out与ref的应用(转)
- C# 中 in,out,ref 的作用与区别
- C#学习基本概念之关键字--ref与out
- c#中ref和out 关键字
- C#中ref和out的使用小结
- C#中如何将List<自定义>转为Json格式 及相关函数-DataContractJsonSerializer