[讀書筆記 ]Stephens' C# Programming with Visual Studio 2010 24-Hour Trainer 第十三章

  • 1053
  • 0

閱讀Stephens' C#教材第十三章筆記

 

Chapter 13 Understanding Scope.
 
Scope在程式設計世界代表的是一個變數可以被看見並使用的作用範圍,這決定了變數是否能夠被讀取或是設定新值。
 
C#類別(Class)中包含三種scope:
class scope
method scope
block scope
namespace VariableScope
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        // A field.
        int a = 1; 

        private void clickMeTooButton_Click(object sender, EventArgs e)
        {
            //A method variable.
            int c = 2;
            MessageBox.Show("a = " + a.ToString() +
                "\nb = " + c.ToString()); 
        }

        private void clickMeButton_Click(object sender, EventArgs e)
        {
            //A method variable.
            int b = 3;
            if (a==1) 
            {
                int d;
                d=a+b;
                MessageBox.Show("d = " + d.ToString() +
                "\nb = " + b.ToString()); 
            }
        }
    }
}
以上面VariableScope程式為例
變數a宣告在三個方法外面(Form1, clickMeButton_Click及clickMeTooButton_Click),a具有class的scope。
變數b宣告在clickMeButton_Click方法內,所以b具有method的scope。
變數c宣告在clickMeTooButton_Click方法內,所以跟b一樣具有method的scope。
變數d宣告在if判斷的程式block內,所以d具有blockd的scope。
 
C#允許名稱相同,但是Scope不衝突的變數宣告。例如上面clickMeTooButton_Click程式,可以將變數c宣告成變數b,因為兩個變數Scope不會重複。
 
介紹變數的生命期(Lifetime),通常變數若在method或block宣告,當method或block執行完畢,變數的生命期也結束(記憶體空間釋放回收)。
 
介紹存取範圍層級(Accessibility),可參考 http://msdn.microsoft.com/zh-tw/library/ba0a1yw2.aspx
 
TRY IT中示範可以加入物品,計算單項物品數量的小計,以及計算總金額的程式