我有以下程序:
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'
发布于 2018-02-01 09:51:50
这就是问题所在:
private OdbcConnection db { get; private set; }
假设您确实希望getter和setter都是私有的,那么应该是:
private OdbcConnection db { get; set; }
策划人是已经private
,因为这是整个属性的可访问性。
或者,如果您希望getter是非私有的,而setter是私有的,则需要指定其他修饰符。
internal OdbcConnection db { get; set; }
基本上,如果要在get;
或set;
它必须比其他情况下的限制更严格。
发布于 2018-02-01 10:55:15
这个错误告诉所有的所需资料:
accessibility modifier ... accessor must be more restrictive than the property ...
private OdbcConnection db { // <- property as whole is "private"
get;
private set; // <- accessor (set) is explictly declared as "private"
}
所以你可以
// 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")
}
或
private OdbcConnection db {
get;
set; // <- just don't declare accessor modifier
}
https://stackoverflow.com/questions/-100004141
复制相似问题