2015-06-29 4 views
1

У меня есть класс с свойством типа Dictionary<>. Я пытаюсь инициализировать свойство в конструкторе, используя следующий код. Это дает ошибку. Зачем?Как инициализировать словарь внутри класса конструктор

Ошибка 1

'Права доступа' является 'собственностью', но используется как 'типа'

Код:

public class UserModel 
{ 
    public UserModel() // constructor 
    { 
     Permissions = new Permissions<Guid, List<Guid>(); 
    } 

    public Dictionary<Guid, List<Guid>> Permissions { get; set; } 
} 
+0

Таким образом, вы * * являются пытаются использовать 'Permissions' как тип. Очевидно, вы имели в виду «Словарь» ... –

+1

+1 от меня, просто из-за downvotes. Это может быть новичок, но, по крайней мере, он содержит всю необходимую информацию, чтобы ответить на него. – M4N

ответ

3

Вы не можете создать экземпляр свойства. Вместо этого вам нужно создать экземпляр типа и присвоить его свойству.

public class UserModel 
{ 
    public UserModel() // constructor 
    { 
     Permissions = new Dictionary<Guid, List<Guid>>(); 
    } 
    public Dictionary<Guid, List<Guid>> Permissions { get; set; } 
    } 
+0

@xanatos, спасибо, я пропустил точку – immirza

-2

Попробуйте

public class UserModel 
    { 
     public Dictionary<Guid, List<Guid>> Permissions { get; set; } 
     public UserModel() // constructor 
     { 
      Permissions = new Dictionary<Guid,List<Guid>>(); 
     } 

    }​ 
+0

Это было уже в предыдущем ответе. И * попробуйте это * не очень полезно. –

+0

Прежде всего, вы не можете отключить мою учетную запись. Во-вторых, я не голосовал, поэтому вы лаете на неправильном дереве. –

+0

Как я уже сказал, разница между моей публикацией и предыдущей версией была всего 2 минуты. Я часто принимаю 10 минут, чтобы правильно подготовить ответ, поэтому иногда возникает дублирующий ответ. – jdweng