考虑一下:
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; } }
}
Usage:
IPerson iperson = new Person();
Or:
IPerson ipersonStub = new StubPerson();
Or:
IPerson ipersonMock = mocks.CreateMock<IPerson>();
所以实际上我们正在宣布IPerson接口和Person同时上课:
public class interface Person : IPerson
您认为在 .NET/C# 中提供这种支持有用吗?
Edit:
由于大量混乱,我认为我需要澄清拟议的目的:
如果没有这个功能,你将不得不编写:
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; } }
}
我根本不提议任何语义改变。