2017-03-06 100 views
-4

所以基本上我剛剛開始學習C#,昨天我有機會了解方法,我有點困惑如何返回有用或他們是什麼,我知道你不能有一個返回一個具有void作爲關鍵字的一部分的方法,我知道void表示「不做任何事或不返回任何東西」類似的東西。C#方法,返回

那麼知道void就意味着。

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 

namespace ConsoleApplication6 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      Add(2,2); 
     } 

     static int Add(int numberOne, int numberTwo) 
     { 
      Console.WriteLine(numberOne + numberTwo); 
      return numberOne + numberTwo; 

     } 
    } 
} 

如何是在此代碼「返回的Numberone + numberTwo」有用的,我有點卡住了,我有心理障礙,爲什麼我需要的回報。 當我運行這段代碼我得到的東西(4)

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Threading; 
using System.IO; 
using System.Net; 

namespace MethodsTutorial 
{ 
    public class Program 
    { 
     static void Main(string[] args) 
     { 
      Console.WriteLine("I'm about to go into a method."); 

      DoSomethingAwesome(); 

      Console.WriteLine("I'm back from the method."); 
     } 

     static void DoSomethingAwesome() 
     { 
      Console.WriteLine("I'm inside of a method, doing something awesome!"); 
     } 
    } 
} 

爲什麼在這段代碼我也有東西(「我是一個方法裏面,做一些真棒!」),我不使用關鍵字返回在最後,我不知道我是否足夠好地解釋自己(對不起,如果我不英語不是我的第一語言),但我只需要一個基本的和很好的解釋如何返回有用,它們是什麼,什麼時候使用它們,何時不使用它們。

謝謝...

+0

IMO,我基本上使用返回類型的方法,當我想修改我的方法的上下文中的東西,然後只是返回輸出,當我想設置可在其他地方訪問的東西(全局變量,等等)時,Void不能使用@oneWhisper – Barak

+0

@oneWhisper。 ** ** Ed Hastings **(http://softwareengineering.stackexchange.com/questions/180804/what-is-the-reason-behind-methods-with-return-values-and-methods-with-void)將如果你閱讀有幫助。 –

+0

也許你可以省略'return'表達式,如果你創建另一種語言,如果你有一天不是新手? –

回答

0

調用方法:

DoSomethingAwesome(); 

在你的主Program,結果在寫句子:

"I'm inside of a method, doing something awesome!" 

因爲DoSomethingAwesome方法打印此值控制檯,即使它沒有返回任何值(這是一個void方法)。

該方法執行此操作,無論它沒有返回值,因爲您稱之爲,因此只需。如果你想使用它的價值,爲返回的字符串,它應該是這樣的:

public class Program 
    { 
     static void Main(string[] args) 
     { 
      Console.WriteLine("I'm about to go into a method."); 

      string result = DoSomethingAwesome(); 

      Console.WriteLine("I'm back from the method."); 
     } 

     static string DoSomethingAwesome() 
     { 
      return "I'm inside of a method, doing something awesome!"; 
     } 
    } 
0

方法的返回值類型聲明什麼呼叫者應該期待。當使用void返回類型聲明方法時,這意味着沒有任何內容返回,因此您不需要使用void方法中的return語句(因爲您沒有返回任何內容)。

在以下情況下,您有:

static int Add(int numberOne, int numberTwo) 
{ 
    Console.WriteLine(numberOne + numberTwo); 
    return numberOne + numberTwo; 

} 

這意味着Add返回誰在呼喚一個整數的方法。

從你的主要功能,您撥打:

Add(2,2); 

這意味着你調用該函數,但你不與結果(只是把它扔了)做任何事情。相反,這樣做:

int result = Add(2, 2); 

的整數返回(4在這種情況下)存儲在result,所以你可以做:

Console.WriteLine("The method returned {0}", result); 
0

方法需要回歸到獲取數據了出來。 在int c = a + b的情況下,你可以認爲這就像你的方法static int Add(int a, int b),這將被寫成int c = Add(a, b)

爲了獲得新的價值的方法的,該方法需要能夠值回來電者,在這種情況下,然後被分配到c

方法的全部重點是分離出經常使用的代碼部分,或將大塊代碼分割成更小,更容易理解的塊。我建議看一下Documentation

0

這裏的問題是相當基本的,不僅僅涉及到C#,事實上幾乎所有的編程語言都在方法中使用return

基本上return表示您希望退出方法執行。現在,當您有一個void方法時,該方法不會從執行中返回值。除了void之外,方法可以返回任何需要的類型。

這裏是一個基本的例子void方法。

class Program 
{ 
    static void Main() 
    { 
     Calculate(1 , 2); 
    } 

    static int c = 0; 

    static void Calculate(int a, int b) 
    { 
     c = a + b; 
    } 

} 

現在在我的Calculate方法,我我的領域c的值設置爲的a + b總和。這是基本的,但是void方法並不返回值,而是修改一個值(c)。

現在,這可以寫成:

class Program 
{ 
    static void Main() 
    { 
     c = Calculate(1 , 2); 
    } 

    static int c = 0; 

    static int Calculate(int a, int b) 
    { 
     return a + b; 
    } 

} 

哪裏會注意到我的Calculate方法現在返回一個int這是a + b總和。這是從調用方法分配到c

現在爲什麼要使用這兩種情況。那麼在第一個例子中,方法Calculate()知道哪個變量應該保存方法的結果。因此它設置了c。在第二個示例中,Calculate方法僅返回a + b的總和。

現在轉到更復雜的例子。比方說,我們建立一個計算器班,誰負責管理計算。

class Calculator 
{ 
    int sum = 0; 

    public void Add(int a) 
    { 
     sum += a; 
    } 

    public void Subtract(int a) 
    { 
     sum -= a; 
    } 

    public int GetTotal() 
    { 
     return sum; 
    } 
} 

這可能是用作:

static void Main() 
{ 
    var calculator = new Calculator(); 
    calculator.Add(5); 
    calculator.Subtract(10); 
    int total = calculator.GetTotal(); 
} 

同樣基本的,但現在我們有3種方法。 AddSubtractGetTotalAddSubtract都是無效的方法,因爲它們在sum字段上執行操作。其中GetTotalreturn

希望這會有所幫助。