【问题标题】:How to write a method extension for a static Class in VB.NET?如何在 VB.NET 中为静态类编写方法扩展?
【发布时间】:2014-01-23 00:35:19
【问题描述】:

我想在Console 类中添加一个自定义的WriteColoredText 方法,以进行如下访问:

Console.WriteColoredText(Parametters)

问题是我只找到了有关为特定数据类型创建方法扩展的信息,但没有找到有关类的方法扩展的信息。

如果这不可能,我有哪些类似的选择?

【问题讨论】:

  • 这是不可能的。您需要制作自己的模块。

标签: .net vb.net methods extension-methods static-classes


【解决方案1】:

简短的回答是,你不能。

Extension methods 只能应用于对象实例,但Console 类是静态的。唯一的解决方案是编写您自己的、完全独立的类,例如ConsoleEx,并在那里实现您想要的任何方法。

扩展方法使得编写一个可以像现有类型的实例方法一样被调用的方法成为可能。

【讨论】:

  • 这给了我一个新的想法,但我不知道这是否可能,想象一下我写了那个 ConsoleExtended 类,我可以更容易地将所有 Console 类方法添加到我的自定义类中?如果您愿意,我可以为此创建一个新问题,但如果您能回答一个简单的是/否,我将不胜感激,谢谢。
  • @ElektroStudios 当然,您的ConsoleExtended 类可以在Console 类中使用您想要的任何方法。然后在您自己的项目中,您可以在任何您想利用新方法的地方使用自定义类。
  • 我找不到将这些本地方法与自定义方法一起添加到我的类的方法,我要提出一个新问题,再次感谢您的信息。
  • @ElektroStudios 您仍然需要在自定义类中编写类名,即Console.WriteLine(或其他)。而且您仍然必须包装您希望能够像ConsoleExtended.WriteLine 一样调用的Console 的每个方法。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-09-09
  • 2011-05-29
  • 2011-05-12
  • 2012-11-22
  • 1970-01-01
  • 2014-10-15
  • 2012-03-10
相关资源
最近更新 更多