首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 > 错误:accessor must be more restrictive than the property or indexer 'Framework.OracleProvider.db',如何解决?

错误:accessor must be more restrictive than the property or indexer 'Framework.OracleProvider.db',如何解决?
EN

Stack Overflow用户
提问于 2018-02-01 01:45:50
回答 2查看 0关注 0票数 0

我有以下程序:

代码语言:txt
复制
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.Odbc;

namespace Framework
{
    public class OracleProvider
    {
        private OdbcConnection db { get; private set; }
        private String dbUsername = Settings.Default.Username;
        private String dbPassword = Settings.Default.Password;

        public OracleProvider()
        {
            connect();
        }

        public void connect()
        { 
            db = new OdbcConnection("Driver={Microsoft ODBC for Oracle};Server=CTIR; UID="+dbUsername+";PWD="+dbPassword+";");    
        }        
    }
}

现在我得到以下错误:

Error 11: The accessibility modifier of the 'Framework.OracleProvider.db.set' accessor must be more restrictive than the property or indexer 'Framework.OracleProvider.db'

EN

回答 2

Stack Overflow用户

发布于 2018-02-01 09:51:50

这就是问题所在:

代码语言:txt
复制
private OdbcConnection db { get; private set; }

假设您确实希望getter和setter都是私有的,那么应该是:

代码语言:txt
复制
private OdbcConnection db { get; set; }

策划人是已经private,因为这是整个属性的可访问性。

或者,如果您希望getter是非私有的,而setter是私有的,则需要指定其他修饰符。

代码语言:txt
复制
internal OdbcConnection db { get; set; }

基本上,如果要在get;set;它必须比其他情况下的限制更严格。

票数 0
EN

Stack Overflow用户

发布于 2018-02-01 10:55:15

这个错误告诉所有的所需资料:

accessibility modifier ... accessor must be more restrictive than the property ...

代码语言:txt
复制
  private OdbcConnection db { // <- property as whole is "private"
    get; 
    private set; // <- accessor (set) is explictly declared as "private" 
  }

所以你可以

代码语言:txt
复制
  // property as a whole is "public", but "set" accessor is "private"
  // and so the accessor is more restrictive than the property
  public OdbcConnection db { // <- property as whole is "public"
    get; 
    private set; // <- accessor is "private" (more restrictive than "public")
  }

代码语言:txt
复制
  private OdbcConnection db { 
    get; 
    set; // <- just don't declare accessor modifier
  }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100004141

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档