c#中有哪些不同的命名区域?

时间:2013-10-16 12:10:19

标签: c#

我从来没有费心去看c#中的不同区域叫什么,我做了编程,从不打扰问这些区域叫什么。我会发一张照片来表明我的意思。我也使用谷歌“c#脚本设置”在线查看,没有优先权。也许这里有人可以提供帮助。

我喜欢找到名称,开头的区域是什么,初始化设置的区域,所谓的空隙是什么,你称之为班级区域。

enter image description here

3 个答案:

答案 0 :(得分:2)

首先,你在这里宣称的是一个类,而不是一个脚本(这正是Unity使用它的原因)。

  • 区域1是您的使用指令。
  • 区域2中的所有内容都称为类定义
  • 区域3不是一个区域,理论上你可以在任何你喜欢的地方声明你的领域 但是,您在“区域3”中引用的类定义中包含了类的成员字段的一些定义(这些不是设置)。
  • 区域4和区域5是方法定义void Start()void Update()是方法的签名(签名定义了例如方法期望的参数和返回的内容,void意味着它什么都不返回),以及什么来的在方法主体之后的块中。

我建议您稍微了解一下C#基础知识,因为在理解语言时它会对您有所帮助。它将使你成为更多更好的Unity开发人员。您需要了解Unity使用的C#不仅仅是简单的脚本,它是一种完整的编程语言,提供了比您想象的更多的可能性。

答案 1 :(得分:1)

您的示例代码不是太好,因为它缺少namespace,这是一个重要元素。

顶级语法(非正式和不完整)是

  • 1文件范围或编译单元
    • 2名称空间
      • 3类型定义
        • 4类型成员
  1. filescope几乎是一个命名空间,但这是唯一允许#define#undefine的地方,它们必须是第一个。其余部分可以视为属于命名空间global::

  2. 命名空间是其他命名空间和类型定义的范围。 using OtherNamespace;指令仅允许在命名空间的开头。

  3. 类型定义包括classstructenum定义。

  4. 类型成员包括属性,字段和方法定义。 void Start() {}是一种方法。

答案 2 :(得分:1)

你的问题有点令人困惑,因为你询问的一些事情有特定的名字,而其他的则没有。

对于初学者来说,一般来说,C#并不关心你的代码文件中的“where”。它关心那些事物进入的“包含范围”,这是由括号组({ })决定的。特别是,你标记的区域(3)没有名称,因为你放在那里的东西可以在(2)内的任何地方,包括混合在其他东西中。

严格地说,C#唯一与位置相关的“区域”是区域:您使用#region / #endregion指令指定的代码文件中的命名区域。您标记的内容是C#程序的语言元素。您可以在this MSDN article或几乎所有已编写的初学者C#书中找到程序可以具有的语言元素类型的非常好的概述。

要回答您的具体问题,请参阅该文章中的示例代码,其中包含您拥有的典型元素:

// These are "import" statements used to refer to other namespaces.
using System;

// This is a namespace declaration, used to group related classes together.
// As far as I know, in Unity you don't use these.
namespace YourNamespace
{
    // Class definition: defining a new custom object type.
    public class Person
    {
        // Field: defining a new internal data element
        public string name;

        // Constructor that takes no arguments. 
        public Person()
        {
            name = "unknown";
        }

        // Method: defining a new behavior for your class.
        public void SetName(string newName)
        {
            name = newName;
        }
    }
}