このことを考慮:
public class interface Person : IPerson
{
int ID { get; protected set; }
string FirstName { get; set; }
string LastName { get; set; }
string FullName { get { return FirstName + " " + LastName; } }
}
この:
public class StubPerson : IPerson
{
int ID { get { return 0; protected set { } }
string FirstName { get { return "Test" } set { } }
string LastName { get { return "User" } set { } }
string FullName { get { return FirstName + " " + LastName; } }
}
使用法:
IPerson iperson = new Person();
または:
IPerson ipersonStub = new StubPerson();
または:
IPerson ipersonMock = mocks.CreateMock<IPerson>();
したがって、事実上、IPersonインターフェイスとPersonクラスを同時に宣言しています。
public class interface Person : IPerson
.NET/C# でこの種のサポートがあれば便利だと思いますか?
編集:
大混乱のため、提案された目的を明確にする必要があると思います。
この機能がなければ、次のように記述する必要があります。
interface IPerson
{
int ID { get; }
string FirstName { get; set; }
string LastName { get; set; }
string FullName { get; }
}
これと同様に:
public class Person : IPerson
{
int ID { get; protected set; }
string FirstName { get; set; }
string LastName { get; set; }
string FullName { get { return FirstName + " " + LastName; } }
}
私はセマンティックの変更をまったく提案していません。