3行代码到1行

时间:2014-06-19 16:33:03

标签: c#

考虑以下代码行:

/// <summary>
/// Create a new node and enqueue it in the second queue.
/// </summary>
/// <param name="n1"></param>
/// <param name="n2"></param>
private void makeNode(TreeNode left, TreeNode right)
{
    // I bet this can be a oneliner!
    TreeNode n = new TreeNode();
    n.Insert(left, right);
    this._q2.Enqueue(n);
}

正如你可以阅读我的评论,我想为此做一个oneliner。

有没有人有想法? 是的,我用谷歌搜索,但这是具体的......

提前致谢!

修改
我完全清楚这些东西真的会降低可读性并且不是很好的做法!然而,这个问题背后的想法是看看是否有办法将其减少到一行,这可能导致我在C#中的新技巧。这是这个问题背后的主要原因。此问题应该在CodeReview而不是SO上提出,我现在知道了。

此外,我无法删除此问题,因此我添加了一些澄清以回应我收到的所有好评。 :)

3 个答案:

答案 0 :(得分:2)

看来你已经有了一个单行:

makeNode(left, right);

答案 1 :(得分:1)

private void makeNode(TreeNode left, TreeNode right)
{
    this._q2.Enqueue(newNodeHelper(left, right)); // Zing!
}

private TreeNode newNodeHelper(TreeNode left, TreeNode right)
{
    TreeNode n = new TreeNode();
    n.Insert(left, right);
    return n;
}

答案 2 :(得分:-2)

this._q2.Enqueue(new TreeNode().Insert(left, right));

但是,将它放在不同的行中总是更好,可读性很重要