有人可以帮我确定这种不明语法的目的是什么。在这个对象的构造函数中,这是一个额外的小东西。我想弄清楚的是什么是“< IdT>”在类声明行的末尾?我认为这是我觉得有用的东西,我只需要了解为什么这么多人似乎都会这样做。
using BasicSample.Core.Utils;
namespace BasicSample.Core.Domain
{
/// <summary>
/// For a discussion of this object, see
/// http://devlicio.us/blogs/billy_mccafferty/archive/2007/04/25/using-equals-gethashcode-effectively.aspx
/// </summary>
public abstract class DomainObject<IdT>
{
/// <summary>
/// ID may be of type string, int, custom type, etc.
/// Setter is protected to allow unit tests to set this property via reflection and to allow
/// domain objects more flexibility in setting this for those objects with assigned IDs.
/// </summary>
public IdT ID {
get { return id; }
protected set { id = value; }
}
答案 0 :(得分:2)
了解泛型:MSDN
这就是你定义泛型类的方法。 因此呼叫
new DomainObject<string>();
将创建一个ID类型为Id的域对象。
定义ID的方式必须是int。
定义它的方式可以是你想要的任何类型。
答案 1 :(得分:1)
来自C#规范:
声明要采用的类类型 类型参数称为泛型 班级类型。结构,界面和 委托类型也可以是通用的。 使用泛型类时,键入 必须为每一个提供参数 类型参数
答案 2 :(得分:1)
在这种情况下,它允许ID属性采用各种值,而无需为每个ID属性类型定义类。例如,ID可以是int
,long
或Guid
,具体取决于数据库中的基础数据类型。
答案 3 :(得分:0)
对,我有点意识到什么是泛型,使用过列表,代表等等。我猜不出是什么,这就是放置“&lt; dataType&gt;”的效果在类声明之后,以及为什么要这样做。如果我要宣布这个对象,我会做以下事情:
公共类DomainObject { Public DomainObject(int ID) { this.ID = ID; } ....