学习C#和方法中的对象让我很困惑

Eta*_*vad 4 .net c#

我确定这个问题已经得到了回答,但经过一个小时的不断搜索,我仍然感到非常困惑.
我正在学习C#并习惯了工作原理,但是让我感到困惑的一件事就是如何让方法中创建的对象可用于其他方法.
我正在开发一个可以完成图像工作的应用程序.我想在表单加载时创建程序使用的对象,然后使用另一种方法对其进行更改.看起来很简单.这是代码的一部分:

    private void Form1_Load(object sender, EventArgs e)
    {
        InitializeBMPObjects();

    }

    public  void InitializeBMPObjects ()
    {
        Bitmap Bmp1 = new Bitmap(320, 226);        

    }


    public void pushPixels()
    {
        Graphics g = Graphics.FromImage(Bmp1);
        //Do some graphics stuff....

    }
Run Code Online (Sandbox Code Playgroud)

我想创建位图对象"Bmp1"然后我希望pushPixels()对该对象进行更改.
麻烦的是,方法pushPixels抱怨因为"名称'Bmp1'在当前上下文中不存在"

我认为这个问题基本上是范围.对象Bmp1仅存在于方法InitializeBMPObjects的范围内.但是如果我想在表单加载上创建一堆对象呢?我应该在方法之外创建对象吗?或者我是否需要以某种方式将这些标记为全局对象?

谢谢.

Lew*_*rin 6

一种选择是使该对象成为成员变量,另一种选择是将其注入到您的方法中:

public  void InitializeBMPObjects ()
 {
   Bitmap Bmp1 = new Bitmap(320, 226); 
   pushPixels(Bmp1);//bmp1 accessible only to pushPixels in this case
 }
 public void pushPixels(Bitmap bmp1)
 {
   Graphics g = Graphics.FromImage(Bmp1);
   //Do some graphics stuff....
 }
Run Code Online (Sandbox Code Playgroud)

要么..

public class YourClass
{
   private Bitmap bmp1 = new Bitmap(320,226) ;
   //this makes bmp1 accessible to all member methods.
}
Run Code Online (Sandbox Code Playgroud)