Может ли GetGenericArguments () в ObservableCollection <T>быть пустым? - PullRequest
0 голосов
/ 21 декабря 2011

В моем коде я имею дело с ObservableCollections (как System.Type).Затем я делаю:

var args = propertyType.GetGenericArguments();

, чтобы узнать, какой тип коллекции у меня есть, я делаю такие тесты, как:

if (args.Count() != 0 && args[0] == typeof(string))

Я проверяю, не является ли аргумент пустым, но что я делаю«Возможно ли, что список аргументов пуст, когда я имею дело с ObservableCollection?»

Я не уверен, понятно ли то, что я спрашиваю, просто скажите мне, если это не так!

Ответы [ 2 ]

1 голос
/ 21 декабря 2011

Нет.Аргументы никогда не могут быть пустыми, если propertyType является универсальным типом.

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

Следовательно, я бы предложил этопуть:

if(propertyType.IsGenericType)
{
    var args = propertyType.GetGenericArguments();
    if (args[0] == typeof(string))
}
0 голосов
/ 21 декабря 2011

Если вы можете гарантировать, что propertyType всегда typeof(ObservableCollection<T>), тогда можно с уверенностью предположить, что аргументы всегда будут иметь один элемент.

...