【发布时间】:2019-12-23 03:50:03
【问题描述】:
考虑以下扩展方法:
public static void Toggle(this ref bool @bool) => @bool = !@bool;
public static void Toggle2(ref this bool @bool) => @bool = !@bool;
这些只是切换一个 ref 布尔变量值。测试:
class Foo
{
private bool _flag;
public void DoWork()
{
_flag.Toggle();
Console.WriteLine(_flag);
_flag.Toggle2();
Console.WriteLine(_flag);
}
}
我们得到:
True
False
问题:选择一种语法或另一种语法有什么隐藏的区别吗?
【问题讨论】:
标签: c# extension-methods ref c#-7.2