2015-11-14 64 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

什麼具體沒有意義? –