Вам нужно где-то добавить возвращаемое значение. Это должно работать:
public bool Equality(byte[] a1, byte[] b1)
{
int i;
if (a1.Length == b1.Length)
{
i = 0;
while (i < a1.Length && (a1[i]==b1[i])) //Earlier it was a1[i]!=b1[i]
{
i++;
}
if (i == a1.Length)
{
return true;
}
}
return false;
}
Но это намного проще:
return a1.SequenceEqual(b1);
В качестве альтернативы, вы можете использовать IStructuralEquatable
из .NET 4:
return ((IStructuralEquatable)a1).Equals(b1, StructuralComparisons.StructuralEqualityComparer)
Если производительность вызывает беспокойство, я бы порекомендовал переписать ваш код для использования класса Binary
, который специально оптимизирован для этого варианта использования:
public bool Equality(Binary a1, Binary b1)
{
return a1.Equals(b1);
}
Быстрый тест на моей машине дает следующую статистику:
Method Min Max Avg
binary equal: 0.868 3.076 0.933 (best)
for loop: 2.636 10.004 3.065
sequence equal: 8.940 30.124 10.258
structure equal: 155.644 381.052 170.693
Загрузите этот файл LINQPad , чтобы самостоятельно запустить тест.
JIndent (коммерческий) делает то, что вы хотите:
Я также использовал Jalopy в прошлом для этого, он открыт источник:
http://jalopy.sourceforge.net/
РЕДАКТИРОВАТЬ: Я отмечу, что Jalopy довольно старый, и, похоже, в нем нет каких-либо последних обновлений. Я не совсем уверен, будет ли он работать с Java 5/6. Вы можете вместо этого взглянуть на Jacobe:
http://www.tiobe.com/index.php/content/products/jacobe/Jacobe.html
Здесь, на Roedy Green's, есть более полный список форматеров. сайт:
Джалопи может быть интересен. Он подключается к Ant и поэтому не зависит от вашей IDE.
Astyle также может быть полезен. Это открытый исходный код (например, Jalopy), но написанный на C ++. Он ориентирован на форматирование Java / C / C ++ и может управляться партиями (через сценарии оболочки или аналогичные)
Я также много использовал PrettyPrinter, встроенный в JRefactory ( http://jrefactory.sourceforge.net / ). Я обнаружил это через его плагин для JEdit. Я оценил его, так как в нем было лучшее покрытие javadoc, которое я когда-либо видел.
К сожалению, он кажется мертвым (без эволюции с 2004 года) и на самом деле он не поддерживает Java5.
Кстати, я подтверждаю, что Triemax - это коммерческий пакет на основе на мертвом Jalopy с открытым исходным кодом.
Я использовал Dr. Java для кодирования и с помощью быстрой клавиши Ctrl + A + он форматирует все это красиво с подсветкой синтаксиса. Я использовал его на Mac и Windows, не знаю, поддерживают ли они Linux. И это открытый исходный код, отдельный и бесплатный.
Вы также можете запустить программу преобразования Eclipse из командной строки.
Вот документация Eclipse для функции
Сначала вы должны создать файл конфигурации, специфичный для вашего проекта настроек форматирования кода Java.
Затем сохраните {projectDirectory} / .settings / org.eclipse.jdt.core.prefs
в другое место.
Теперь вы вызовете средство форматирования.
[ПРЕДУПРЕЖДЕНИЕ] Похоже, это перестало работать в Eclipse 2018. Используйте Eclipse Oxygen. "c: \ path \ to \ eclipse \ eclipse.exe" -vm "C :
Попробуйте "Украсить код Якоба":
http://www.tiobe.com/ index.php / content / products / jacobe / Jacobe.html
Персональная версия бесплатна.