2014-11-01 93 views
-3
abstract class Component 
{ 
    public abstract void Operation(); 
} 
abstract class Decorator : Component 
{ 
    protected Component component; 

    public void SetComponent(Component component) 
    { 
     this.component = component; 
    } 
} 

我要上面的代碼,protected Component component是什麼意思;我知道受保護的是它的可見性,但是Component組件是什麼,組件是變量還是它的數據類型是Component?聲明變量的不同方法?

+0

嚴格來說,'component'是一個字段。但是,這有點像一個變量。 – 2014-11-01 02:39:30

+2

真的。花幾個小時閱讀C#教程。 – 2014-11-01 03:05:16

+0

Hi @ user3741685如果有任何這些答案已解決您的問題,請點擊複選標記考慮[接受它](http://meta.stackexchange.com/q/5234/179419)。這向更廣泛的社區表明,您已經找到了解決方案,併爲答覆者和您自己提供了一些聲譽。沒有義務這樣做。 – wolfgangwalther 2014-11-02 23:00:45

回答

0

定義以下:

protected Component component; 

protected定義可訪問性。 Component是數據類型。 component是這個名字。

+0

我可以給任何數據類型,而不是像int,字符串等預定義的數據類型? – user3741685 2014-11-01 02:51:18

+0

您可以聲明實際存在的任何類型的變量。當您使用本機C#數據類型時,例如'int'或'string',它將在VS中變成藍色,因爲它是一個語言關鍵字。儘管這些本地數據類型都是使用.NET類型實現的,例如, 'Int32'結構和'String'類。您可以聲明任何類型的變量,即任何結構,類,枚舉,接口或委託。 – jmcilhinney 2014-11-01 03:04:59

0

你的問題的答案是(基本上):是的。

在這種情況下,定義的變量是一個字段。 From Fields (C# Programming Guide)

字段是直接在類或結構中聲明的任何類型的變量。

正如你已經假定了三個部分的意思是:

一般變量聲明如下:

<datatype> <name>; 

或初始值:

<datatype> <name> = <value>; 

對於字段聲明,你明明可以指定訪問級別:

<accessibility> <datatype> <name>; 
<accessibility> <datatype> <name> = <value>; 

如果喲你沒有指定可訪問級別(這是可選的),你的字段默認是私有的。

要了解這一切,您應該從tutorial on C#C# Datatypes開始。