如何在c#中调用返回类方法

本文关键字:调用 返回 类方法 | 更新日期: 2023-09-27 17:50:31

我是c#新手。

基本上,我试图将字节类型的图像从数据库转换为可读的图像格式(显示字节作为实际图像)。我写了下面的代码,但是不知道如何调用类的方法。

public Image byteArrayToImage(byte[] byteArrayIn)
{
    MemoryStream ms = new MemoryStream(byteArrayIn);
    Image returnImage = Image.FromStream(ms);
    return returnImage;
}

我把它命名为下面但是在byteArrayToImage(ImageData);下面有红线:

public Image Img = byteArrayToImage(ImageData);

知道是怎么回事吗?

如何在c#中调用返回类方法

你可能想把你的方法标记为static

public class YourClass
{
    public static Image byteArrayToImage(byte[] byteArrayIn)
    {
     //Your code   
    }
}

然后在它的类

之外这样调用它
public Image Img = YourClass.byteArrayToImage(ImageData);

如果你的类是这样的

public class MyClass
{
     //some variables, methods, etc.
     public Image byteArrayToImage(byte[] byteArrayIn)
     {
       MemoryStream ms = new MemoryStream(byteArrayIn);
       Image returnImage = Image.FromStream(ms);
       return returnImage;
     }
}

按如下方式调用,

public Image Img = new MyClass().byteArrayToImage(ImageData);

为什么?

因为要调用类的非静态方法,需要该类的对象/实例

  1. 可能ImageData不是一个字节[]
  2. 在全局字段初始化器中调用非静态方法

应该是:

public Image byteArrayToImage(byte[] byteArrayIn)
{
    MemoryStream ms = new MemoryStream(byteArrayIn);
    Image returnImage = Image.FromStream(ms);
    return returnImage;
}
public void MyMethod()
{
    byte[] myData = <something>
    Image Img = byteArrayToImage(myData);
}