C#扩展方法

本文关键字:方法 扩展 | 更新日期: 2024-10-24 04:04:28

对于这样的扩展:

public static class ImageExtensions
{
    public static Image LoadImage(string path)
    {
        using (MemoryStream ms = new MemoryStream(File.ReadAllBytes(path)))
            return Image.FromStream(ms);
    }
}

如何使其能够被称为Image.LoadImage(path)而不是ImageExtensions.LoadImage(path)

我通常可以使用其他扩展方法,其中它们的第一个参数是this Image img。使用CCD_ 4进行工作。

C#扩展方法

这是不可能的。不能编写充当静态扩展的扩展方法,因为扩展方法需要一个对象实例。

实际上,具有签名public static Image LoadImage(string path的方法甚至不是扩展。它只是一个静态方法,因此要按照您的意愿编写它,只需更改类名:

public static class Image
{
    public static Image LoadImage(string path)
    {
        using (MemoryStream ms = new MemoryStream(File.ReadAllBytes(path)))
            return Image.FromStream(ms);
    }
}