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

在Visual Studio 2022的.NET Maui中解决CS0060错误求助

修复CS0060错误方案

CS0060错误的核心原因是派生类的访问级别高于其基类的有效访问权限。结合你的代码,最可能的触发点是cbOption类的访问级别为默认的internal(未显式声明public),而派生类QuotationApproved是public,导致基类cmpComboBox<cbOption>的有效访问权限低于派生类,从而引发错误。

修复步骤

  • 将cbOption类的访问级别显式设置为public,确保其能被公开的派生类正常引用:
    public class cbOption
    {
        public string Name { get; set; }
        public string Value { get; set; }
    }
    
  • 确认基类与派生类的构造函数访问级别一致:当前代码中基类和派生类构造函数均为public,符合要求,无需调整。

修正后完整代码示例

基类代码(无修改)

namespace cmp.Class
{
    public class cmpComboBox<Cb>
    {
        protected Picker ptComboBox { get; private set; }

        public cmpComboBox(Picker ipelmCombo)
        {
            ptComboBox = ipelmCombo;
        }

        public void setComboBox()
        {
            var vOptions = GetOptions();
            ptComboBox.ItemsSource = vOptions;
            ptComboBox.ItemDisplayBinding = new Binding("Name");
        }

        protected virtual List<Cb> GetOptions()
        {
            return new List<Cb>();
        }
    }
}

派生类代码(含public的cbOption定义)

namespace cmp.Class
{
    public class QuotationApproved : cmpComboBox<cbOption>
    {
        public QuotationApproved(Picker ptComboBox) : base(ptComboBox)
        {
        }

        protected override List<cbOption> GetOptions()
        {
            return new List<cbOption>
            {
                new cbOption { Name = "Waiting", Value = "0" },
                new cbOption { Name = "Approved", Value = "1" },
                new cbOption { Name = "Not Approved", Value = "2" }
            };
        }
    }

    public class cbOption
    {
        public string Name { get; set; }
        public string Value { get; set; }
    }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 10:25:26