集体成员声明不是声明吗?

时间:2014-12-22 13:48:07

标签: c# declaration terminology statements

我认为类成员声明是声明语句。但是,当我从规范中查看declaration statements时。我发现了这个:

declaration-statement:
      local-variable-declaration;
      local-constant-declaration;

显然,类成员声明既不是局部变量也不是局部常量。那么,一个班级成员声明的正确用语是什么? Statements部分中的类成员声明没有单独的章节,所以它们不是声明吗?如果他们属于哪个类别?

4 个答案:

答案 0 :(得分:2)

声明声明 可视为 声明 的子集。最终 声明声明 声明 声明的交集

现在有关会员,您必须知道您正在处理哪种会员。对于课程,您有 class member declaration 等...

通过阅读您的评论,我认为您对术语 声明 感到困惑。在一种语言中,语句应该是可计算的东西。 C#并不严格遵循这些规则(许多其他语言也没有)。增强 声明声明

例如:

int i;
int i = 0;

两者都是 声明声明 。计算部分是堆空间中的分配和/​​或值的初始化。为了简化 声明 ,将在词法范围分析器和/或链接器中使用。但是, 语句 主要用于字节码发射器

回到会员声明。你可以说成员声明可以嵌入计算并且是正确的。例如:

class a { static int i = 42;}

唉,C#并没有严格遵循定义,应该将其命名为 class-member-declaration-statement 。但是这个名字变得愚蠢,并不是所有的陈述都在班级成员声明中被接受。

答案 1 :(得分:2)

来自C# programming guide page on statements

  

程序采取的操作以语句表示。常见操作包括声明变量,赋值,调用方法,循环集合以及分支到一个或另一个代码块,具体取决于给定的条件。语句在程序中执行的顺序称为控制流程或执行流程。每次运行程序时,控制流程都可能不同,具体取决于程序对运行时收到的输入的反应。

语句是告诉语言进行操作

类成员声明本身不定义动作;它定义了一个对象的一些属性。

drilling down through the C# grammar starting from statement支持; statement下的所有内容都可以说是一个动作或可执行的代码行。

答案 2 :(得分:1)

  

成员声明的正确用语是什么?

Class member declarations

class-member-declaration:
  constant-declaration
  field-declaration
  method-declaration
  property-declaration
  event-declaration
  indexer-declaration
  operator-declaration
  constructor-declaration
  destructor-declaration
  static-constructor-declaration
  type-declaration

问题是您链接的文档是半英文/半英文。我发现this browsable pure BNF更有用。

答案 3 :(得分:0)

我相信你想看看第10节 - 课程。例如,成员函数在10.5中定义 - 方法: http://msdn.microsoft.com/en-us/library/aa645760(v=vs.71).aspx

在编辑时:(在第一行添加'例如'),同时:

简单的声明语句不包括定义类成员(或结构等)的(潜在的)必要附加信息,如mathk指出的那样。正如您所指出的,声明声明定义为:

declaration-statement:
    local-variable-declaration;
    local-constant-declaration;

但是当你看到local-variable-declaration的定义时,例如:

local-variable-declaration:
    type local-variable-declarators

您可以看到成员声明为何特殊 - 需要涵盖修饰符等额外信息。基本上,该定义的'type'部分必须已经解析为早期定义(或内置类型)。对于更复杂的定义(例如成员),语法定义需要在其他部分(10,11等)中涵盖的其他属性不适用于基本的声明 - 语句情况。一旦定义了基础类型,声明该特定“物种”的实例就是声明语句