关于C#的一个基础性问题,不是很明白,请求讲解

partial class FrmLogin
{
           public void DMINIT()                                                        //大漠初始化
    {
        Dm.dmsoft dm = new Dm.dmsoft();       //方法1
    }
            Dm.dmsoft dm = new Dm.dmsoft();          //方法2
    }

    C#里面有方法1和方法2有什么不同。代码都不报错,编译的时候才会报错,这是为什么。

方法1定义的是局部变量,方法2是成员变量,如果返回值是void,那么第一个没什么用。

方法1是方法DMINIT的局部变量吧,只能在方法DMINIT内使用。方法2是类FrmLogin的方法吧。编译时候是啥错?