c# - 这个冒号是什么(:) mean?

标签 c# constructor constructor-chaining

this关键字之前是一个冒号。任何人都可以解释冒号在这种情况下的含义吗?我不相信这是继承。

谢谢

using System;

namespace LinkedListLibrary
{
    class ListNode
    {
        private object data;
        private ListNode next;

        public ListNode(object dataValue)
            : this(dataValue, null)
        {
        }

        public ListNode(object dataValue, ListNode nextNode)
        {
            data = dataValue;
            next = nextNode;
        }

        public ListNode Next
        {
            get
            {
                return next;
            }
            set
            {
                next = value;
            }
        }
        public object Data
        {
            get
            {
                return data;
            }
        }


    }
}

最佳答案

它(与 this 关键字一起)指示构造函数在它自己执行之前调用同一类型中的另一个构造函数。

因此:

public ListNode(object dataValue)
    : this(dataValue, null)
{
}

有效地变成:

public ListNode(object dataValue)
{
    data = dataValue;
    next = null;
}

请注意,您可以使用 base 而不是 this 来指示构造函数调用基类中的构造函数。

关于c# - 这个冒号是什么(:) mean?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1071148/

相关文章:

c# - <select> 标记多个属性使用 runat=server | 引发解析器错误类型为 'System.Boolean' 的对象

php - 是否可以在 PHP 中链式重载构造函数?

java - 在 Java 中链接构造函数而不从默认构造函数抛出异常

c# - 表达式表示 `variable' ,其中预期为 `method group'

c# - 将两个 Asp.Net Core API 合并到一个应用程序中

c# - C# 中的正则表达式模式\K 替代方案

java - 安卓文档 : constructor returning null for SoundPool?

ruby - ruby 模块有构造函数吗?

groovy - 为什么我不能通过 Groovy 中构造函数内部的闭包来初始化 final 类变量?

c# - HttpWebRequest 1个url,2个目标ip