public interface IRecordInformation
{
DateTime CreatedOn { get; set; }
DateTime ModifiedOn { get; set; }
}
public class CareerApplication : IRecordInformation
{
public int CareerApplicationId { get; set; }
public string Name { get; set; }
public string FileName { get; set; }
public string Email { get; set; }
public DateTime IRecordInformation.CreatedOn { get; set; }
public DateTime IRecordInformation.ModifiedOn { get; set; }
}
なぜ私はこれをやっているのですか?インターフェイスを変更してプロパティを削除すると、クラスに実装が存在するインターフェイスで宣言されたプロパティがないというコンパイル時エラーが発生するはずです。このようにして、クラスから実装を削除できます。しかし、クラスでインターフェイス名を使用して明示的な実装を使用しない場合、インターフェイスからプロパティを削除すると、その対応するプロパティはクラス自体のプロパティとして扱われます。
私は次のようにしてみました
public DateTime CreatedOn { get => ((IRecordInformation)this).CreatedOn; set => ((IRecordInformation)this).CreatedOn = value; }
しかし、画像を添付しているスタックオーバーフロー例外があります