//我的C#是跟著猛哥(劉鐵猛)(算是我的正式老師)《C#語言入門詳解》學習的,微信上猛哥也給我講解了一些不懂得地方,對於我來說簡直是一筆巨額財富,難得良師! 這次與大家一起學習C#中的值參數 傳值參數(也叫值參數) 值參數 (value parameter) 什麼是值參數? 這是從《C#語言規範5 ...
//我的C#是跟著猛哥(劉鐵猛)(算是我的正式老師)《C#語言入門詳解》學習的,微信上猛哥也給我講解了一些不懂得地方,對於我來說簡直是一筆巨額財富,難得良師!
這次與大家一起學習C#中的值參數
傳值參數(也叫值參數)
值參數 (value parameter)
什麼是值參數?
這是從《C#語言規範5.0》中找到的一段定義:
用於傳遞輸入參數。一個值參數相當於一個局部變數,只是它的初始值來自為該形參傳遞的實參。對值參數的修改不影響為該形參傳遞的實參。
值參數可以是可選的,通過指定預設值可以省略對應的實參。
傳值參數--值類型
註意:1.值參數創建變數的副本 2.對值參數的改變不會影響變數的值
看個例子:
1 using System;
2 using System.Collections.Generic;
3 using System.Linq;
4 using System.Text;
5 using System.Threading.Tasks;
6
7 namespace BlogUse
8 {
9 class Program
10 {
11 static void Main(string[] args)
12 {
13 Calculator c = new Calculator();
14 int y = 1024;
15 c.AddOne(y);
16 Console.WriteLine(y);
17 }
18 }
19
20 //準備一個能進行計算的Calculator工具
21 class Calculator
22 {
23 public void AddOne(int x) //這裡的x就是傳值參數
24 {
25 x = x + 1;
26 Console.WriteLine(x);
27 }
28 }
29 }
這是運行結果
註意到了嗎我們明明對變數y調用了AddOne方法使其存儲的值加1,但是為什麼y還是1024呢?
這就是因為方法內的參數是傳進來的變數的副本,我們在方法體內修改的只是y傳進來的一個副本,而這並不影響方法外變數y存儲的值
---------------------------------------------------------------------------------------------------------------------------------------
To be Continued!
下篇與大家一起學習 傳值參數--引用類型,創建新對象
---------------------------------------------------------------------------------------------------------------------------------------
希望廣大網友指出問題所在,指出我哪裡理解錯了,共同交流,共同進步!