それは静的な何かを探していますなぜ私が把握することはできませんアクセスできません。私は基本的なデータベースクラスで何も静的に見えないので、なぜ?は非静的フィールド
は、ここではちょっと同じ事をしたときの別の例です:
partial class Database : DatabaseBase
{
static string DbConnectionString
{
get
{
if (dbConnectionString == null)
dbConnectionString =
ConfigurationManager.AppSettings["MyConnectionString"];
return dbConnectionString;
}
}
public Database() :base(DbConnectionString)
{
}
OKなぜそれが渡される接続文字列のための静的な文字列でなければならないのですか?
それで、必要に応じてベースコンストラクタにその接続文字列をどのように送信できますか? – PositiveGuy
あなたのソリューションは問題ありませんが、分析は完全に間違っています*。インスタンスフィールドは、ベースコンストラクタが呼び出される前に初期化されます。構築の順序は、派生フィールド初期化子、基本フィールド初期化子、基本コンストラクタ本体、派生コンストラクタ本体です。 –
順序がそのようである理由のために、このテーマに関する私の記事を参照してください。http://blogs.msdn.com/ericlippert/archive/2008/02/15/why-do-initializers-run-in-the-opposite-order -as-constructors-part-one.aspxおよびhttp://blogs.msdn.com/ericlippert/archive/2008/02/18/why-do-initializers-run-in-the-opposite-order-as-constructors -part-two.aspx –