4
C#のインターフェイスで前提条件(LSP)を指定する方法は?
次のインターフェースがあるとしましょう- interface IDatabase { string ConnectionString{get;set;} void ExecuteNoQuery(string sql); void ExecuteNoQuery(string[] sql); //Various other methods all requiring ConnectionString to be set } 前提条件は、いずれかのメソッドを実行する前にConnectionStringを設定/初期化する必要があることです。 IDatabaseが抽象クラスまたは具象クラスである場合、コンストラクターを介してconnectionStringを渡すことにより、この前提条件をある程度達成できます。 abstract class Database { public string ConnectionString{get;set;} public Database(string connectionString){ ConnectionString = connectionString;} public void ExecuteNoQuery(string sql); public void ExecuteNoQuery(string[] sql); //Various other methods all requiring …