これがばかげた質問かどうかはわかりませんが、私はこれに気づきました。
public interface IActivityDao : IDao<Activity>
{
IList<Activity> GetAllSinceSequence(long sequence, int count);
}
public class ActivityDao : AbstractNHibernateDao<Core.Domain.Activity>, IActivityDao
{
public IList<Activity> GetAllSinceSequence(long sequence, int maxRecords)
{
}
}
実装内で、2番目のパラメーターを「maxRecords」と呼びました。ただし、インターフェイスでは、「カウント」として定義されています。コンパイラーは、実装されたインターフェースを引き続き考慮します。これは優れていますが、少しあいまいになる可能性があります。明らかに、パラメータの1つを他のパラメータと一致するように名前変更する必要があります。
名前を変更する前に少し遊んだところ、何か面白いことに気づきました。インターフェイスを次のように宣言することは許可されていません。
public interface IActivityDao : IDao<Activity>
{
IList<Activity> GetAllSinceSequence(long, int);
}
これは、コンパイラがC#の構文に対して過度に保護しているだけですか?コードを読みやすくする以外に、インターフェイスのメソッドのパラメータ名はどのような目的に役立ちますか?パラメータ名が実装に強制されていない場合、あいまいさを招くように思われます。