1.1 KiB
1.1 KiB
通常用法: 解决值值类型和引用类型在函数内外部互相传递时的问题 函数内部改外部传入也改 ==ref和out的区别:== ref: - 传入的参数必须初始化(赋值) - 方法内可读可写 out: - 传入前可以不初始化 - 方法内必须赋值,否则编译报错
语法: 在函数传参时,两边都要加上修饰词 ref:
//交换数字
void Swap(ref int a, ref int b)
{
int temp = a; a = b; b = temp;
}
out:
//最经典:int.TryParse
if (int.TryParse(Console.ReadLine(), out int value))
Console.WriteLine(value % 2 == 0 ? "even" : "odd");
//int.TryParse伪代码
//bool ReadConfig(string key, out string value)
//{
// if (配置存在)
// {
// value = 读取到的值; return true;
// }
// else
// {
// value = null; return false;
// }
//}
案例: 原型在值类型和引用类型笔记中
注意: ==out不是用来让内外值一定不等== ==ref传入的参数必须初始化== 如果传入引用类型且内外不同,推荐new一个
#基础