OPC/UA-.NETStandard 的递归 GetEndpoints 方法如何工作?
How does the recursive GetEndpoints-Method of the OPC/UA-.NETStandard work?
我想学习一些 C# 和 .net 以及网络知识。因此,我选择了 OPC UA 代码。
在 github 上:UA-.NETStandard/Stack/Opc.Ua.Core/Stack/Client/DiscoveryClient.cs
但是我真的不明白这个方法是如何工作的:
public virtual EndpointDescriptionCollection GetEndpoints(StringCollection profileUris)
{
EndpointDescriptionCollection endpoints = null;
GetEndpoints(
null,
this.Endpoint.EndpointUrl,
null,
profileUris,
out endpoints);
return PatchEndpointUrls(endpoints);
}
我理解是递归的方法,一遍又一遍的调用自己
- 它是怎么结束的?可能是连续轮询?
- 内部调用的参数“null,this.Endpoint.EndpointUrl,null,profileUris,out endpoints”是 StringCollection 吗?因为 StringCollection "profileUris" 已经是一个 StringCollection!?
该方法实际上不是递归的。您正在完全调用不同的方法(或“重载”)。你可以看看in the code repo.
请注意 class 是部分的。如果您遵循 repo 中的引用,您会看到它导致生成的客户端和服务器部分 classes.
我想学习一些 C# 和 .net 以及网络知识。因此,我选择了 OPC UA 代码。
在 github 上:UA-.NETStandard/Stack/Opc.Ua.Core/Stack/Client/DiscoveryClient.cs
但是我真的不明白这个方法是如何工作的:
public virtual EndpointDescriptionCollection GetEndpoints(StringCollection profileUris)
{
EndpointDescriptionCollection endpoints = null;
GetEndpoints(
null,
this.Endpoint.EndpointUrl,
null,
profileUris,
out endpoints);
return PatchEndpointUrls(endpoints);
}
我理解是递归的方法,一遍又一遍的调用自己
- 它是怎么结束的?可能是连续轮询?
- 内部调用的参数“null,this.Endpoint.EndpointUrl,null,profileUris,out endpoints”是 StringCollection 吗?因为 StringCollection "profileUris" 已经是一个 StringCollection!?
该方法实际上不是递归的。您正在完全调用不同的方法(或“重载”)。你可以看看in the code repo.
请注意 class 是部分的。如果您遵循 repo 中的引用,您会看到它导致生成的客户端和服务器部分 classes.