0

有人可以帮我确定这种不明语法的目的是什么。这是该对象的构造函数中的一个额外的小东西。我想弄清楚类声明行末尾的“<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; }
        }
4

4 回答 4

2

阅读泛型: MSDN

这就是定义泛型类的方式。因此调用

new DomainObject<string>(); 

将创建一个具有字符串类型 ID 的域对象。

您定义 ID 的方式必须是 int。

它的定义方式 id 可以是您想要的任何类型。

于 2008-12-10T17:53:59.990 回答
1

从 C# 规范:

声明为采用类型参数的类类型称为泛型类类型。结构、接口和委托类型也可以是通用的。使用泛型类时,必须为每个类型参数提供类型参数

于 2008-12-10T17:57:36.207 回答
1

在这种情况下,它允许 ID 属性采用各种值,而无需为每个 ID 属性类型定义一个类。例如,ID 可以是int、 或 或longGuid具体取决于数据库中的基础数据类型。

于 2008-12-10T18:03:38.067 回答
0

是的,我有点了解泛型是什么,使用过列表、委托等。我不明白的是,在类声明之后放置“<dataType>”会产生什么影响,以及为什么要这样做。如果我要声明这个对象,我会执行以下操作:

公共类 DomainObject { Public DomainObject(int ID) { this.ID = ID; } ....

于 2008-12-10T17:58:54.080 回答