2015-11-14 59 views
-1

我知道这太愚蠢了一个问题。但我是学习者,班级生意对我来说很难。从主类或通过方法类实例化

我正在展示Code-1及以下的Code-2。我想知道两者是否具有相同的目的,并且仅在演示文稿中存在差异。

我提出了这个疑问,因为到目前为止,我曾经主要做所有事情,而不是在课程中有不同的方法。

Code-1。

namespace trial1 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      Program p = new Program(); 
      p.InstanceEqual(); 
     } 
     public void InstanceEqual() 
     { 
      string name = "Unnikrishnan"; 
      employeename emp1 = new employeename(name); 
     } 
    } 
    public class employeename 
    { 
     string _name; 
     public employeename(string name) 
     { 
      _name = name; 
     } 
    } 
} 

Code-2。

namespace trial1 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      Program p = new Program(); 
      employeename emp1 = new employeename("Unnikrishnan"); 
     } 
    } 
    public class employeename 
    { 
     string _name; 
     public employeename(string name) 
     { 
      _name = name; 
     } 
    } 
} 
+3

我是唯一一个读这10次,没有得到什么OP是在说什么? –

+0

只有OP已经查看它是否有答案! – Unnikrishnan

+1

我不太明白你在这里问什么?有没有特定的问题? – Kolja

回答

1

你的问题有点不清楚,但我会去为它。

您当然可以在Program课程中使用某种方法,但通常情况下,您不会为测试或作业以外的任何程序提供方法。

两行不要完成同样的事情。让我们比较一下他们做了什么:

employeename emp1 = new employeename("Joe"); 

这行创建了一个新的变量EMP1用新employeename对象。这个变量只在主函数中。下一行调用InstanceEqual方法:

public void InstanceEqual() 
{ 
    string name = "Unnikrishnan"; 
    employeename emp1 = new employeename(name); 
} 

的方法创建一个新的变量,名为EMP1是在范围仅在InstanceEqual方法。一旦InstanceEqual方法完成,它将控制返回到main(),并且不再可以访问您在InstanceEqual方法中创建的emp1。

如果你想完成同样的事情,你会发现返回你创建的值。一个不同的版本来完成同样的事情会看起来像这样:

namespace trial1 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      Program p = new Program(); 
      employeename emp1 = new employeename("Joe"); 
      employeename emp2 = p.InstanceEqual(); 
     } 
     public employeename InstanceEqual() 
     { 
      string name = "Unnikrishnan"; 
      employeename emp2 = new employeename(name); 
      return emp2; 
     } 
    } 
    public class employeename 
    { 
     string _name; 
     public employeename(string name) 
     { 
      _name = name; 
     } 
    } 
} 
+0

你为我的大脑注入了一点知识。非常感谢你。我接受答案。 – Unnikrishnan

+0

我仍然不清楚这些概念。 – Unnikrishnan

+0

什么具体没有意义? –