考虑以下代码行:
/// <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上提出,我现在知道了。
此外,我无法删除此问题,因此我添加了一些澄清以回应我收到的所有好评。 :)
答案 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));
但是,将它放在不同的行中总是更好,可读性很重要