2014-01-18 124 views
-2

我正在嘗試學習編程,並從一本名爲Software Development Fundamentals的書開始。然而,我對於理解某些主題有困難。尤其是因爲我的母語不是英語。我被困在主題(事件)和(代表)。我覺得這對我來說很難,我甚至無法得到這個代碼的工作!C#該名稱在當前上下文中不存在

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


namespace Lesson02 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      Rectangle r = new Rectangle(); 
      r.Changed += new EventHandler(r_Changed); 
      r.Length = 10; 
     } 
     static void r_changed(object sender, EventArgs e) 
     { 
      Rectangle r = (Rectangle)sender; 
      Console.WriteLine(
       "Value Changed: Length = {0}", 
       r.Length); 
     } 

    } 
    class Rectangle 
    { 
     public EventHandler Changed; 
     private double length; 
     public double Length 
    { 
     get 
     { 
      return length; 
     } 
     set 
     { 
      length = value; 
      Changed(this, EventArgs.Empty); 
     } 
    } 



} 


} 

我得到這個錯誤:

Error 1 The name 'r_Changed' does not exist in the current context 14 59 Lesson02

+1

C#是區分大小寫的。檢查「r_Changed」與「r_changed」的拼寫 – David

回答

4

C#是區分大小寫的語言。您已經定義功能r_changed,並用它作爲r_Changed

使用

r.Changed += new EventHandler(r_changed); 

,而不是

r.Changed += new EventHandler(r_Changed); 
+0

謝謝,「Wiley.Exam.98-361.MTA.Software.Development.Fundamentals」 這本書顯然拼錯了! – user1442232

+1

@ user1442232你應該給這個答案一個複選標記。 :) – puretppc

1

我敢肯定你會通過,現在C#知道是區分大小寫的編程語言。

這應該工作

static void r_Changed(object sender, EventArgs e) 
{ 
    Rectangle r = (Rectangle)sender; 
    Console.WriteLine("Value Changed: Length = {0}", r.Length); 
} 

注意如何r_Changed是資本(r_changed是您最初定義的)

我會建議使用這個,因爲它更容易閱讀。

+0

建議往往可以,但是如果你提出建議,你應該陳述'爲什麼'。 – Silvermind

+0

@Silvermind它更容易閱讀,但仍然,其他建議貼出來。在第一個單詞(或字母)是小寫字母后,方法通常應該大寫。 – puretppc

0

代碼中有一個小錯字。在您的事件處理程序中它應該是r_Changed而不是r_changed

即寫

static void r_Changed(object sender, EventArgs e) 

代替

static void r_changed(object sender, EventArgs e) 

記住C#是區分大小寫)

相關問題