我在 Twitter 上看到了这个,但找不到我能理解的解释。我对此进行了测试,发现答案是1。提前致谢。
(var @_, var _) = (5,2);
Console.WriteLine(@_/_);
Run Code Online (Sandbox Code Playgroud)
正如@Jeroen Mostert的评论中指出的,_是一个丢弃,所以如果你尝试命名一个变量_,它只是意味着一个占位符名称。但是,您可以使用该符号对其进行转义并用作_实际名称@,这在 C# 中通常意味着转义或原始形式。
本质上,var @_这意味着一个名为_while的变量var _意味着一个占位符变量,它没有名称并且不可寻址。
现在,当访问名为 的变量时_,您不必再次执行转义序列,_/_即可有效访问该变量。a/a如果你的变量被命名了,它就等于a。但问题以这种方式编写代码让你感到困惑。请注意,@不会改变任何东西,因为_首先不被视为丢弃。“读取/访问”丢弃的数据没有任何意义。
由于_等于 5,5/5 = 1