c# - C#调用重载方法参数问题
问题描述
我有 3 种方法的课程:
IConnection CreateConnection(AuthType authentication, string user, string password);
IConnection CreateConnection(string ticket);
IConnection CreateConnection(IMetadata metadata);
另一个类调用这些方法中的 2 个:
IConnection connection = ticket != null ? manager.CreateConnection(ticket) : manager.CreateConnection(sso, user, password);
调用类 IMetadata 的命名空间不包括在内,所以这在那里不知道。编译器在第一次调用时抛出错误(以票据作为参数)“类型'IMetadata'是在未引用的程序集中定义的。”。但第二次调用没有错误(使用 sso + 用户 + 密码)。似乎编译器不知何故需要 IMetadata 的知识来决定调用哪一个 1 参数方法重载。任何解决方案的想法?
编辑:对不起,我忘了提到这个错误是在调用类中删除 IMetadata 的命名空间的引用后出现的。我们不希望在那里引用(与此问题无关的原因)。
编辑 2:使用票证参数添加第二个虚拟参数以重载将解决该问题。但这不是我希望的解决方案。
解决方案
推荐阅读
- javascript - 在剧作家的 javascript 发出新请求后获取弹出 URL
- windows - 在 Golang 中从 Windows 服务运行单独的可执行文件
- for-loop - Terraform - 地图列表中的 foreach 地图列表
- c - 带有 Valgrind 错误的分段错误“大小为 4 的无效读取”
- python - python中的裸体检测
- java - 无法使用 url.openStream() 读取某些地址
- python - 如何移动带有 numpy 数组的棋子?
- flutter - 如何在颤动中设置图像的对比度、色调和亮度
- odbc - ('01000', "[01000] [unixODBC][Driver Manager]Can't open lib '/opt/simba/spark/lib/64/libsparkodbc_sb64.so' : file not found (0) (SQLDriverConnect)")
- python - PermissionError: [Errno 13] 使用 WSL2 和 Docker 在 Windows 上拒绝权限