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进行工作。
这是不可能的。不能编写充当静态扩展的扩展方法,因为扩展方法需要一个对象实例。
实际上,具有签名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);
}
}