Мы могли бы сделать это функциональным способом, используя every
( https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Array/every )
function compareArrays(array1, array2) {
if (array1.length === array2.length)
return array1.every((a, index) => a === array2[index])
else
return false
}
// test
var a1 = [1,2,3];
var a2 = [1,2,3];
var a3 = ['a', 'r', 'r', 'a', 'y', '1']
var a4 = ['a', 'r', 'r', 'a', 'y', '2']
console.log(compareArrays(a1,a2)) // true
console.log(compareArrays(a1,a3)) // false
console.log(compareArrays(a3,a4)) // false
Если Вы не можете найти хороший преобразователь, Вы могли бы всегда компилировать код c# и использовать dissasembler в Отражатель для наблюдения кода Visual Basic. Некоторые имена переменной изменятся.
Telerik имеет хороший преобразователь , который основан на SharpDevelop, который работал вполне прилично за эти годы, хотя это не было обновлено в годах (из-за него бывший основанный SharpDevelop).
я недавно столкнулся находящийся в Рослине преобразователь также . Я не знаю, как хорошо это работает или как хорошо сохраняемый это, но как это - открытый исходный код, можно всегда разветвлять его и обновлять его по мере необходимости.
SharpDevelop имеет встроенного переводчика между C# и VB.NET. Не идеальная мысль (например, дополнительные значения в VB.NET не имеет эквивалента в C#, таким образом, подпись метода преобразователя должна быть отредактирована), но можно сэкономить некоторое время, поскольку Вы делаете все операции в IDE, и не веб-страница (скопируйте код C#, вставку, нажмите кнопку, скопируйте код VB.NET, вставку на IDE: P)
Я думаю, что лучшая вещь сделать, учат достаточно другого языка так, чтобы можно было переписать вручную, существуют некоторые довольно трудные различия в определенных аспектах, что я не уверен, что преобразователь обработал бы очень хорошо. Например, сравните мой перевод от C# до VB следующего:
public class FileSystemEventSubscription : EventSubscription
{
private FileSystemWatcher fileSystemWatcher;
public FileSystemEventSubscription(IComparable queueName,
Guid workflowInstanceId, FileSystemWatcher fileSystemWatcher) : base(queueName, workflowInstanceId)
{
this.fileSystemWatcher = fileSystemWatcher;
}
становится
Public Class FileSystemEventSubscription
Inherits EventSubscription
Private myFileSystemWatcher As FileSystemWatcher
Public Sub New(ByVal QueueName As IComparable, ByVal WorkflowInstanceID As Guid, ByVal Watcher As FileSystemWatcher)
MyBase.New(QueueName, WorkflowInstanceID)
Me.myFileSystemWatcher = Watcher
End Sub
, C# от Пользовательского образца Платформы Действия, и я боюсь, что потерял ссылку на него. Но это содержит некоторое противно выглядящее наследование (с точки зрения VB).
Не отвечая на Ваш вопрос, я скажу, что был в подобном положении.
я понял, что примеры кода в C# были неловкими, когда я действительно начинал в.NET, но несколько недель в мой первый проект (после того, как я выращенный более знакомый с платформой.NET и VB.NET самой), я нашел, что это было интересно и иногда выгодно для перепроектирования кода C#. Не только с точки зрения синтаксиса, но также и приобретения знаний о тонких различиях в подходе - полезно быть непредубежденным в этом отношении.
я придерживаюсь VB.NET, поскольку я узнаю больше и больше о платформе, но в ближайшее время я опущу мой к в C# с намерением стать 'многоязычным'.
Можно загрузить DLL или EXE в Redgate (раньше Lutz Roeder) .Net Отражатель , выбрать метод и затем желаемый язык от комбинации языка. Код выбранного метода будет отображен на выбранном языке.
я надеюсь, что это помогает.
В настоящее время я использую плагин для VS2005, который я нашел на CodeProject ( http://www.codeproject.com/KB/cs/Code_convert_add-in.aspx ); это использует внешний сервис ( http://www.carlosag.net/Tools/CodeTranslator/ ) для выполнения перевода.
Иногда, когда я в режиме офлайн, я использую инструмент преобразователя ( http://www.kamalpatel.net/ConvertCSharp2VB.aspx ).
В последний раз я проверил, , SharpDevelop имеет один, и это - открытый исходный код также.
У Carlos Aguilar Mares был преобразователь онлайн приблизительно для 40 forevers - Преобразователь кода , но я согласился бы, что Отражатель является лучшим ответом.
Тот в http://www.developerfusion.com/tools/convert/csharp-to-vb/ (новый URL) теперь поддерживает.NET 3,5 синтаксиса (благодаря #develop парням еще раз) и автоматически скопирует результаты в Ваш буфер обмена:)