考虑一下:
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; } }
}
我根本不建议进行任何语义更改。