使用 VB 中的 StatePrinter 而不是 C# 来实现 ToString
Using StatePrinter from VB rather than C# to implement ToString
我正在努力遵循承诺 suggestion posted here to try StatePrinter as a shortcut to rolling my own ToString methods. I agree with the OP 遗憾的是 VS 仍然无法为我生成此方法。
我在 VS2015(社区版)中有一个相当大的项目,其中包含 VB 和 C# 代码。我使用 NuGet 添加了当前稳定版本的 StatePrinter。
我可以使 SO 答案中的示例代码在我的 C# 代码中正常工作,但是当我执行我认为在我的 VB 代码中等效的操作时:
Private Shared sp As StatePrinter.Stateprinter = New StatePrinter.Stateprinter
Public Overrides Function ToString() As String
Return sp.PrintObject(Me)
End Function
我刚收到编译器错误
'Stateprinter' is ambiguous in the namespace 'StatePrinter'
还有另一个构造函数 StatePrinter(仅注意大小写的区别)已被弃用,并且在任何情况下都会生成相同的错误消息。
我得出了一个不幸的结论
VS2015 中的 - VB 就像不区分大小写一样。这是真的吗?
- 没有其他人在使用来自 VB 的 StatePrinter。
任何人都可以提供有关如何使用来自 VB 的 StatePrinter 的任何建议吗?我愿意相信我在将 C# 示例转换为 VB.
时犯了一些相当脑残的错误
当我在上面的问题中写完 #1 后,我就能弄清楚如何搜索该位的答案。
是的,VB 不区分大小写,至少在这种情况下是这样:
在这里查看相当不错的文章:
所以,我们留下了一个相当悲伤的问题:没有其他人使用 VB 的 StatePrinter 吗?
几乎不可能直接在 VB 中使用它来解决名称不明确的问题。您可以在 C# 中编写一个 class 库包装器,它不会暴露这种不匹配(也就是说,它有一个内部 StatePrinter 对象并暴露相同 PascalCased 的构造函数。
另一种选择是在 VB 项目中使用反射来解决不区分大小写的问题。
您还可以创建一个 GitHub 问题。或者,成为该项目的贡献者并为其创建建议的修复程序。 :)
我正在努力遵循承诺 suggestion posted here to try StatePrinter as a shortcut to rolling my own ToString methods. I agree with the OP 遗憾的是 VS 仍然无法为我生成此方法。
我在 VS2015(社区版)中有一个相当大的项目,其中包含 VB 和 C# 代码。我使用 NuGet 添加了当前稳定版本的 StatePrinter。
我可以使 SO 答案中的示例代码在我的 C# 代码中正常工作,但是当我执行我认为在我的 VB 代码中等效的操作时:
Private Shared sp As StatePrinter.Stateprinter = New StatePrinter.Stateprinter
Public Overrides Function ToString() As String
Return sp.PrintObject(Me)
End Function
我刚收到编译器错误
'Stateprinter' is ambiguous in the namespace 'StatePrinter'
还有另一个构造函数 StatePrinter(仅注意大小写的区别)已被弃用,并且在任何情况下都会生成相同的错误消息。
我得出了一个不幸的结论
-
VS2015 中的
- VB 就像不区分大小写一样。这是真的吗?
- 没有其他人在使用来自 VB 的 StatePrinter。
任何人都可以提供有关如何使用来自 VB 的 StatePrinter 的任何建议吗?我愿意相信我在将 C# 示例转换为 VB.
时犯了一些相当脑残的错误当我在上面的问题中写完 #1 后,我就能弄清楚如何搜索该位的答案。
是的,VB 不区分大小写,至少在这种情况下是这样: 在这里查看相当不错的文章:
所以,我们留下了一个相当悲伤的问题:没有其他人使用 VB 的 StatePrinter 吗?
几乎不可能直接在 VB 中使用它来解决名称不明确的问题。您可以在 C# 中编写一个 class 库包装器,它不会暴露这种不匹配(也就是说,它有一个内部 StatePrinter 对象并暴露相同 PascalCased 的构造函数。
另一种选择是在 VB 项目中使用反射来解决不区分大小写的问题。
您还可以创建一个 GitHub 问题。或者,成为该项目的贡献者并为其创建建议的修复程序。 :)