C# 3行代码到1行

C# 3行代码到1行,c#,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) {

考虑以下代码行:

/// <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);
}
正如你能读到我的评论,我想为这个做一个单行线

有人有主意吗? 是的,我在谷歌上搜索过,但这是一种具体的方式

提前谢谢

编辑: 我完全意识到这类事情确实会降低可读性,而且不是好的做法!然而,这个问题背后的想法是,看看是否有一种方法可以将其简化为一行,这可能会让我在C中找到一个新的技巧。这就是这个问题背后的主要原因。同样,这个问题应该在CodeReview上被问到,而不是这样,我现在已经知道了

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

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

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

似乎您已经有了一行:

makeNode(left, right);

TreeNode n=新的TreeNode;n、 插入左,右;这个;“一行是一行。为什么一行如此重要?它更快,”本恩说。每个人都知道换行符会降低执行速度。@aglasser:还有所有那些用于缩进的额外制表符/空格。完全是表演上的谋杀。也许英特尔真的应该更新x86行,使之能够运行正确格式的代码。在抽象级别上,makeNode是唯一的一行。这是其他消费者需要知道的一件事,其余的都是无关紧要的细节。将精力集中在相关性上。只有当TreeNode.Insert返回原始TreeNode时,这才有效。我尝试了这个方法,但不起作用…在代码周围加上反勾以正确格式化:是的,我知道可读性很重要,但我只是好奇是否可以将其作为一行代码编写…是的,我这样做了。makeNodethis.\u q2.Dequeue,这个。_q2.退出队列;然而,我感兴趣的是一种写一行程序的方法,当然可读性很重要,但我只是好奇这是否可能。他说的是,对函数的调用发生在一行上,那么函数的实现有什么区别呢?你希望所有事情都发生在一行中,这背后有什么原因吗?没有充分的理由将单独的操作挤到一行中不会有助于可读性。很好,但我已经通过创建makeNode方法创建了一个新的NodeHelper原则。你的助手需要一个助手,需要一个帮手…@Lars这个答案是讽刺的。你的问题没有正确答案。@我只是想知道这是否可能,但事实并非如此,谢谢。
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;
}