本文参考Roslyn项目中的Issue:#118。 1. C# 7.0 新特性1: 基于Tuple的“多”返回值方法 2. C# 7.0 新特性2: 本地方法 3. C# 7.0 新特性3: 模式匹配 4. C# 7 ...
本文参考Roslyn项目中的Issue:#118。
1. C# 7.0 新特性1: 基于Tuple的“多”返回值方法
2. C# 7.0 新特性2: 本地方法
3. C# 7.0 新特性3: 模式匹配
4. C# 7.0 新特性4: 返回引用
C#早在最初的发行版C# 1.0中(2002年1月),就借鉴并延续了C/C++中指针参数,原生允许将值类型数据的引用(指针)通过标记ref参数的形式,传递到方法体中。
但对于方法内的值类型引用,该如何以引用的方式返回,却一直以来没有一个非常完美的解决方案,尽管这种用例非常少见。
提一个简单的问题,我们需要获取三个int中的最大值的引用。
我们照惯例,回顾下C#7.0之前的做法:
C/C++指针
我们回归到C/C++中,这个问题没有什么好争议的,实现起来会很理所应当的是这样的:
1 int* Max(int* first, int* second, int* third) {2 int* max = *first > *second ? first : second;3 return *max > *third ? max : third;4 }5 ....6 int a = 1, b = 2, c = 3;7 int* max = Max(&a, &b, &c);8 *max = 4; // c == 4;
原标题:C# 7.0 新特性4: 返回引用
关键词:C#
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们:
admin#shaoqun.com
(#换成@)。