2014-11-01 86 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开始。