Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/262.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 域对象构造函数中的未识别语法_C#_Design Patterns_Oop_Dns - Fatal编程技术网

C# 域对象构造函数中的未识别语法

C# 域对象构造函数中的未识别语法,c#,design-patterns,oop,dns,C#,Design Patterns,Oop,Dns,有人能帮我确定这个不明语法的用途吗。它是这个对象的构造函数中的一个额外的小东西。我想弄清楚的是类声明行末尾的“”是什么?我认为这是我会发现有用的东西,我只需要理解为什么这么多人会这样做 using BasicSample.Core.Utils; namespace BasicSample.Core.Domain { /// <summary> /// For a discussion of this object, see /// http://devli

有人能帮我确定这个不明语法的用途吗。它是这个对象的构造函数中的一个额外的小东西。我想弄清楚的是类声明行末尾的“”是什么?我认为这是我会发现有用的东西,我只需要理解为什么这么多人会这样做

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; }
        }
使用BasicSample.Core.Utils;
命名空间BasicSample.Core.Domain
{
/// 
///有关此对象的讨论,请参见
/// http://devlicio.us/blogs/billy_mccafferty/archive/2007/04/25/using-equals-gethashcode-effectively.aspx
/// 
公共抽象类DomainObject
{
/// 
///ID可以是字符串、int、自定义类型等类型。
///Setter受到保护,允许单元测试通过反射设置此属性,并允许
///域对象在为具有指定ID的对象设置此项时具有更大的灵活性。
/// 
公共IdT ID{
获取{return id;}
受保护集{id=value;}
}
阅读泛型:

这就是定义泛型类的方式。 故称

new DomainObject<string>(); 
newdomainobject();
将创建Id为string类型的域对象

定义ID的方式必须是int

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

了解泛型:

这就是定义泛型类的方式。 故称

new DomainObject<string>(); 
newdomainobject();
将创建Id为string类型的域对象

定义ID的方式必须是int

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

来自C#spec:

声明为采用的类类型 类型参数称为泛型参数 类类型.Struct、接口和 委托类型也可以是泛型的。 使用泛型类时,键入 必须为以下各项提供参数: 类型参数

从C#规范:

声明为采用的类类型 类型参数称为泛型参数 类类型.Struct、接口和 委托类型也可以是泛型的。 使用泛型类时,键入 必须为以下各项提供参数: 类型参数


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

公共类域对象 { 公共域对象(int-ID) { this.ID=ID; }
..

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

公共类域对象 { 公共域对象(int-ID) { this.ID=ID; }
..

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

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

在这种情况下,ID必须是整数,泛型允许更大的灵活性。在这种情况下,ID必须是整数,泛型允许gr食客的灵活性。