由于没有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)
但是,已经有一个广泛使用的惯例吗?
答案 0 :(得分:1)
我能找到的最接近的,Microsoft提出的命名约定是Core
。
示例:
public Add(Item item)
{
AddCore(item);
}
public Replace(Item item1, Item item2)
{
RemoveCore(item1);
AddCore(item2);
}
另请参阅此相关问题:More private than private? (C#)