如何向MessageBox添加扩展方法

Jac*_*ack 9 .net c# extension-methods

这是可能的?

基于另一个例子,如LabelExtesios,StringExtensions等我写了这样的:

namespace MessageBoxExtensions
{

    public static class MessageBoxExtensionsClass
    {
        public static void Foo()
        {

        }
    }
}
Run Code Online (Sandbox Code Playgroud)

然后:

using MessageBoxExtensions;
// ... 

MessageBox.Foo();
Run Code Online (Sandbox Code Playgroud)

gin错误:MessageBox.Foo();

'System.Windows.Forms.MessageBox' does not contain a definition for 'Foo'
Run Code Online (Sandbox Code Playgroud)

dkn*_*ack 8

描述

你不能这样做,因为System.Windows.Forms.MessageBox不是一个实例MessageBox.MessageBox.Show()是一种静态方法.

你不能创建一个实例,MessageBox因为这个类没有公共构造函数.

更新

但是你可以在System.Windows.Forms命名空间中创建自己的类,并MessageBox像这样使用 in this方法

样品

namespace System.Windows.Forms
{
    public static class MyCustomMessageBox
    {
        public static void Foo()
        {
            MessageBox.Show("MyText");
        }
    }
}

MyCustomMessageBox.Foo();
Run Code Online (Sandbox Code Playgroud)

  • 你的1up在哪里?;) 开玩笑 (2认同)