如何在C#(Visual Studio环境)中访问Renci.SshNet.ForwardedPortRemote的属性并输出BoundPort值
如何在控制台显示ForwardedPortRemote对象的BoundPort值?
从你描述的情况来看,你的port变量是Renci.SshNet.ForwardedPortRemote类型的实例,这类强类型对象不能直接用索引器(就是你试的port["BoundPort"])访问属性,也不能直接输出对象本身(默认会打印类名)。
正确的做法是直接通过属性访问符来获取BoundPort的值,因为即时窗口里已经明确显示它是这个类的一个公共属性。
你可以把代码改成这样:
Console.WriteLine($"Trying port {port.BoundPort}.");
为什么之前的写法不行?
- 当你直接写
{port}时,C#会默认调用对象的ToString()方法,而ForwardedPortRemote类没有重写这个方法,所以会输出它的完整类名。 - 你尝试的
port["BoundPort"]是索引器的写法,只有当类显式实现了索引器(比如字典类)时才能这么用,而ForwardedPortRemote并没有提供这样的索引器,所以编译会失败。
内容的提问来源于stack exchange,提问作者Vityata
相关产品推荐
相关产品推荐

