【问题标题】:Understadning C# delegate Func<...> operators了解 C# 委托 Func<...> 运算符
【发布时间】:2016-09-13 02:12:52
【问题描述】:

我在理解一些 C# Func<...> 运算符时遇到了一些麻烦,例如,我们有以下 sn-p:

Func<int, bool> a = n => n <= 1;
Func<int, int> b = n => 10;
Func<int, int> c = n => { return n; };
Func<int, int> d = n => a(n)? b(n): n*c(n-1);
Console.WriteLine("{0} {1} {2}", d(1), d(2), d(3));

?: 代表什么意思? a(n)? b(n) 代表条件吗? (例如,如果 a(n) 为假且 b(n) 具有值,则计算 c(n) 并将其返回为 d。)我不确定我是否理解正确,或者我的假设完全错误。

【问题讨论】:

  • 那是三元运算符,没什么特别的。
  • @jdphenix 谢谢,不知道他们叫三元运算符。
  • 一切都好,很难用谷歌搜索?: :D
  • @jdphenix 是的,Wiki 对此有非常详细的解释,抱歉问了一个转储问题...

标签: c# function delegates


【解决方案1】:

为了更清楚,你可以解释一下

n => a(n)? b(n): n*c(n-1);

as(鉴于您的问题提供的定义):

if (n<=1)
    return 10; //b(n)
else
    return n*n-1; //n*c(n-1)=n*n

注意returns 的存在是因为d=...

【讨论】:

  • 三元运算符与if-else语句不同。
  • @DannyChen 确定不是。谁说的?
猜你喜欢
  • 2013-06-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-09-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多