在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
相关产品推荐
相关产品推荐

