неопознанный синтаксис в конструкторе объекта домена - PullRequest
0 голосов
/ 10 декабря 2008

Может кто-нибудь помочь мне определить цель этого неопознанного синтаксиса. Это дополнительный элемент в конструкторе для этого объекта. Я пытаюсь выяснить, что такое «» в конце строки объявления класса? Я думаю, что это то, что я нашел бы полезным, мне просто нужно понять, почему так много людей, кажется, делают это.

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 ]

2 голосов
/ 10 декабря 2008

Читать о дженериках: MSDN

Так вы определяете универсальный класс. Отсюда и звонит

new DomainObject<string>(); 

создаст объект домена с идентификатором типа строка.

Способ определения идентификатора должен быть int.

Способ определения идентификатора может быть любого типа.

1 голос
/ 10 декабря 2008

В этом случае это позволяет свойству ID принимать различные значения, не определяя класс для каждого типа свойства ID. Например, ID может быть int, или long, или Guid в зависимости от базового типа данных в базе данных.

1 голос
/ 10 декабря 2008

Из спецификации C #:

Тип класса, который объявлен как принимающий Тип параметров называется универсальным тип класса. Структура, интерфейс и Типы делегатов также могут быть общими. Когда используется универсальный класс, введите аргументы должны быть предоставлены для каждого из параметры типа

0 голосов
/ 10 декабря 2008

правильно, я в некоторой степени осведомлен о том, что такое дженерики, использовал списки, делегаты и т. Д. Я не понимаю, я думаю, какой эффект дает "dataType>" после объявления класса, и почему вы должны это сделать Это. Если бы я объявил этот объект, я бы сделал следующее:

Открытый класс DomainObject { Public DomainObject (int ID) { this.ID = ID; } ....

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...