Почему я могу применить индексатор к ICollection в VB.Net, но не в C #
Конвертировал некоторый код из VB.Net в C #, когда я сталкивался с этим, в некоторый код, используя библиотеку Ionic Zip:
Dim zipEntry1 As ZipEntry = zipFile1.Entries(0)
Достаточно просто:
ZipEntry zipEntry1 = zipFile1.Entries[0];
Я получаю эту ошибку на C #:
Невозможно применить индексирование с помощью [] к выражению типа 'System.Collections.Generic.ICollection»
Оба используют одну и ту же версию DLL, на обоихzipFile1.Entries
является общим.ICollection
Я проверил ниже на VB.Net, и он успешно собирается:
Option Strict On
Option Explicit On
Imports Ionic.Zip
Module Module1
Sub Main()
Dim zipFile1 = ZipFile.Read("C:\test")
Dim zipEntry = zipFile1.Entries(0)
End Sub
End Module
Это не построить:
using Ionic.Zip;
namespace ConsoleApplication2
{
class Program
{
static void Main(string[] args)
{
var zipFile1 = ZipFile.Read(@"C:\test");
var zipEntry = zipFile1.Entries[0];
}
}
}
Почему это происходит, и есть ли способ обойти это?