Коллекции в C # - PullRequest
       26

Коллекции в C #

2 голосов
/ 15 июня 2010

преобразовываю компонент vb.net в c #, я получаю эту ошибку

Using the generic type 'System.Collections.ObjectModel.Collection<T>' requires '1' type argument s

Это то, что я сделал

в VB.NET, у меня былоэто

 Private _bufferCol As Collection

я сделал это в c #

private Collection _bufferCol = new Collection();

Моя декларация

using Microsoft.VisualBasi;    
using System.Collections;    
using System.Collections.Generic;    
using System.ComponentModel;    
using System.Collections.ObjectModel;

Может ли любое тело помочь мне, пожалуйста.

Ответы [ 4 ]

10 голосов
/ 15 июня 2010

Это сбивает с толку, поскольку в пространствах имен Microsoft.VisualBasic и System.Collections.ObjectModel есть тип с именем «Collection». Вы можете исправить вещи для прямого перевода, как это:

private Microsoft.VisualBasic.Collection _buffer = new Microsoft.VisualBasic.Collection();

Но я не рекомендую это делать. Пространство имен Microsoft.VisualBasic предназначено главным образом для облегчения перехода от старого кода эпохи vb6. Вы действительно не должны больше использовать его тип коллекции.

Вместо этого адаптируйте этот код для использования универсального List<T> или Collection<T>.

3 голосов
/ 15 июня 2010

Вам нужна декларация типа для вашей коллекции. То есть какого типа ваша коллекция держит?

Например:

//strings
private Collection<string> _bufferCol = new Collection<string>();
2 голосов
/ 15 июня 2010

Как говорится, вам нужно указать тип объектов, хранящихся в коллекции.

Когда у вас есть:

System.Collections.ObjectModel.Collection<T>

this T означает тип ваших объектов в коллекции.

Если вам нужно принять все типы объектов, просто используйте

var _bufferCol = new System.Collections.ObjectModel.Collection<object>();
1 голос
/ 15 июня 2010

Вы пытаетесь использовать типизированную коллекцию в C #, но не указываете тип.

Попробуйте

private Collection<MyType> _bufferCol = new Collection<MyType>();

Где MyType - это тип вещи, которую выхотите добавить в коллекцию.

C # позволяет строго набирать коллекции, списки, наборы и т. д., чтобы их содержимое было известно и могло быть проверено во время компиляции.

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