您的位置:首页 > 编程语言 > C#

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