0

由于没有任何 C# 语言可以防止类中的任何地方从该类中调用私有方法,因此对于只能由另一个独占方法调用的方法是否有标准命名约定?

为什么?所以其他人不会意外调用该方法(如果他们知道约定)。

例如,当我有递归方法时,我经常有另一个方法,我想成为该方法的独占调用者,那么每个人都应该直接调用该方法而不是我的递归方法。例如:

    private void FindPathToNode(Node currentNode, List<Node> visitedNodes, List<Node> path, int targetId, ref bool found)
    {
         ...
         FindPathToNode(node, visitedNodes, path, targetId, ref found);
    }

    private void FindPathToNode(Node startNode, int targetId)
    {
        var visitedNodes = new List<Node>();
        var path = new List<Node>();
        var found = false;
        FindPathToNode(startNode, visitedNodes, path, targetId, ref found);
    }

我喜欢前导下划线的想法,因为在其他语言中它表示“私有性”,例如 Python(尽管它只表示类级别的私有)。

        private void _FindPathToNode(Node currentNode, List<Node> visitedNodes, List<Node> path, int targetId, ref bool found)

但是是否已经有一个广泛使用的约定?

4

1 回答 1

1

我能找到的最接近的,微软提出的命名约定是Core.

例子:

public Add(Item item)
{
  AddCore(item);
}

public Replace(Item item1, Item item2)
{
  RemoveCore(item1);
  AddCore(item2);
}

另请参阅此相关问题:比私有更私有?(C#)

于 2013-11-01T09:33:13.497 回答