簡體   English   中英

C# 方法參數有什么意義?

[英]What's the point of C# Method Parameters?

我是編碼新手,我很好奇為什么方法參數很有用。 當我可以在調用它時應該執行的方法中創建一個變量時,它們有什么意義? 給它那個參數有什么意義?

在您的示例中,假設您想向不僅僅是 Mike 打招呼。 你可以這樣做:

SayHi("Mike");
SayHi("Amy");
SayHi("Sam");

讓我們更進一步。 您可以創建一個姓名集合,並向任意數量的人打招呼

List<string> people = new List<string> { "Mike", "Amy", "Sam", "John", "Mindy" };
foreach (string person in people) 
{
    SayHi(person);
}

如您所見, SayHi()函數是可重用的,因為您可以多次調用它。

再進一步,假設后來你意識到你不想說"Hello " + name ,你想說, "Hello, " + name + ". How are you?" 那么你只需要在一個地方更改代碼,它的所有使用時間都會受到影響。

添加一個參數是一種表達“這段可重用代碼只有在它有這個值可以使用時才有用”的方式。 在您的示例代碼中, SayHi需要的值是一個名稱,因為它需要知道向誰打招呼。

參數可用於幾個不同的事情。 最實際的用途是避免重復 Phong 在他們的回答中所說的。 例如,如果我想在控制台打印一行紅色文本,我可以這樣做:

Console.ForegroundColor = ConsoleColor.Red;
Console.WriteLine("This is some red text");
Console.ResetColor();

Console.WriteLine("This is some boring white text");

Console.ForegroundColor = ConsoleColor.Red;
Console.WriteLine("And this is some more red text!");
Console.ResetColor();

或者我可以創建一個帶有輸入參數的函數,用於文本顯示紅色,如下所示:

static void WriteRed(string output){
    Console.ForegroundColor = ConsoleColor.Red;
    Console.WriteLine(output);
    Console.ResetColor();
}

WriteRed("This is some red text");
Console.WriteLine("This is some boring white text");
WriteRed("And this is some more red text!");

如您所見,我們將此任務從 3 行任務轉變為 1 行任務,這在沒有輸入參數的情況下是不可能的。 如果我們需要在程序的其他任何地方用紅色書寫,這將非常有用。

顯然,這是一個非常簡單的示例,在更復雜的程序中,這可以輕松地為您節省 100 多行代碼。

另一個用途是用於組織。 假設您有一個接受用戶輸入並以某種方式處理它的程序。 使用帶有輸入參數的函數,您可以將用戶輸入收集放在一個 .cs 文件中,並將處理放在另一個文件中。

參數在構造函數中也非常有用,如果您還沒有了解,構造函數只是在創建對象的新實例時調用的函數。

給它那個參數有什么意義?

它可以幫助您以相同的步驟Reuse某些操作。 不要重復自己

如您所見,您只需傳遞參數,然后在方法內部就會幫助您做一些事情(“Hello”+passedparameter)

您應該閱讀 OOP(面向對象編程)的基礎知識。 這將幫助您了解常用的方法重載、覆蓋和繼承等基本原則。 您可以創建結構化的、編寫干凈的代碼的函數,而不是編寫多個單行語句。 此外,遵循不同的設計模式,它允許我們賦予函數處理單一職責的能力,並使一切變得更清晰!

https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/concepts/object-oriented-programming

C#是面向對象的編程語言


面向對象編程(OOP)是一種解決問題的方法,其中所有計算都使用對象進行。 對象是程序的一個組件,它知道如何執行某些操作以及如何與程序的其他元素進行交互。

創建對象后,您希望它們能夠執行某些操作。 這就是方法的用武之地。面向對象編程中的方法是與類相關聯的過程。 方法定義從類創建的對象的行為。 另一種說法是,方法是對象能夠執行的操作。 方法和類之間的關聯稱為綁定

考慮使用 person 類創建的類型為“ person ”的對象的示例。 與此類關聯的方法可以包括步行和駕駛等 方法有時與函數混淆,但它們是不同的。 函數是指令的組合,這些指令組合在一起以實現某種結果。 一個函數通常需要一些輸入(稱為參數/參數)並返回一些結果 例如,考慮駕駛汽車的例子。 要確定里程,您需要使用行駛距離和使用的燃料量進行計算。 您可以編寫一個函數來進行此計算。 進入函數的參數將是distance 和 fuel消耗,結果將是 mileage 。 任何時候您想確定里程數,您只需調用該函數來執行計算。

這與方法有何不同? 函數是獨立的,與類無關。 您可以在代碼中的任何位置使用此函數,並且不需要有對象來使用它。

What's the point to them when I can create a variable within the method which should execute when I call on it

如果在方法內部創建一個變量,則只能在編寫代碼時為其分配一個值,但是如果將其作為參數傳遞,則可以在稍后調用該方法時動態分配您想要的任何值,甚至是您想要的值不知道在寫代碼的時候,這個值可以在運行時賦值。

此外,方法用於封裝一些邏輯,假設您想要一種計算圓面積的方法,即π r2 ,您知道 PI π的值,因為它是一個幾乎為 3.14 的常數,但您不知道t 知道半徑值r因為它從一個圓到另一個圓而變化,所以您需要將它作為參數傳遞給該方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM