我不理解c#代码行,无法在线找到答案

时间:2018-06-03 04:13:08

标签: c#

我开始在我的大学学习C#和.NET,并且我很难弄清楚一些示例代码是如何工作的。

我的问题是使用以下语法。类组件是Form1的次级。

public class componente
{
    public string nombre { get; set; }
    public componente siguiente;
}

我不明白的是“public componente siguiente”这一行。我在谷歌和堆栈溢出搜索,但我不知道它的名称,不能找到答案。

我不明白它是变量,方法等等。

3 个答案:

答案 0 :(得分:2)

注意 componente 也是你的类名,这意味着componente类有一个字段 siguiente ,这是一种自身(componente)。这是一种递归关系。

例如,Person类可能有一个字段,这也是一种Person。

答案 1 :(得分:0)

public字是C#语言的保留字,它是该属性/类的访问修饰符。即,您定义谁有权访问该类/属性(仅限定义它们的类,类外等)。

Class是你定义了一个类。

componente是该类的名称。

public componente siguiente;

中的

这里你要定义一个字段(只是一个变量)。

public是修改后的访问权限。

componente是该字段的类型(即,您正在定义类componente类型的变量)。

siguiente是该字段(或变量)的名称。

我会在询问之前观看一些视频或阅读C#语言的基础知识(通常约200页书页)(即使你在开头发现了一些含糊不清的东西)。

答案 2 :(得分:0)

声明变量的基本语法是

[public|private|protected] Type Name;

声明方法的基本语法是

[public|private|protected] Return-Type Name(Arguments) { Body }

(小心:这只是非常基本的语法)

因此,您最有可能在这里接近变量声明。类型是componente,这意味着siguiente包含该类的另一个Object。这看起来像是在编写List。

您可以搜索有关如何使用C#编程List的教程,并且您将看到更多与您相似的代码。

但是,基本上你有一个值(在你的情况下是一个数字)和一个指向下一个持有下一个数字的Object的指针。

换句话说:您的类正在引用同一类的对象。现在我知道你正在努力实现一个堆栈,这并没有什么不同。你最终得到的是这样的:

[数| siguiente ----------> [数| siguiente ---------> [数| siguiente]]]

其中siguiente是同一个类的下一个Object,括号[]内的所有内容都是一个组件。请注意我只能关闭末尾的所有括号,因为第一个Object将包含相同Type的siguiente(next)对象。因此根组件将包含所有其他组件。

在堆栈中,您可以添加最后一个组件(后进先出)