You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C#代码合法性咨询:类可含无公共读写器的私有字段?子类B写法正确吗?

C#语法疑问解答

1. 类中是否可以存在没有public getters和setters的私有字段?

完全可以。在C#中,类的成员默认访问修饰符是private,这类私有字段仅能在类内部访问,根本不需要对外暴露public的getter或setter。实际开发中,私有字段常用来存储类的内部状态,仅通过类内部的方法或按需暴露的属性来操作,避免外部直接篡改内部数据。

2. 子类B的写法是否正确?

不正确,编译会报错。原因是父类X仅定义了一个带参数的构造函数,未提供无参构造函数。而C#中,子类构造函数默认会隐式调用父类的无参构造函数,由于父类不存在该构造函数,因此必须在子类的构造函数中显式调用父类的带参构造函数。

修正后的代码示例:

using System;

namespace Testiranje
{
    class X
    {
        int x;
        public X(int i)
        {
            x = i;
        }
    }

    class B : X
    {
        int b;
        // 显式调用父类的带参构造函数
        public B(int i) : base(i)
        {
        }
    }
}

内容的提问来源于stack exchange,提问作者Mihailo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 20:35:23