Лучшие практики для кросс-компиляции .NET / MONO

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

Например, это инициализировало бы примитивный целочисленный массив с верхней границей 4 .

int intArray[] = new int[5];

Программисты подсчитываются с нуля. Таким образом, это, например, выбрало бы ArrayIndexOutOfBoundsException, поскольку верхняя граница равна 4, а не 5.

intArray[5];
14
задан Brian Schroth 24 November 2009 в 21:25
поделиться

3 ответа

Самые большие проблемы связаны с API, поддерживаемыми Mono. Использование поддержки Visual Studio Integration в Mono может очень помочь в этом, поскольку вы можете настраивать Mono все время на всех платформах.

По вашим конкретным вопросам:

1) Interop - You нужно будет придерживаться P / Invoke. Постарайтесь выделить это в отдельные сборки для конкретной платформы. Это приводит к 2:

2) Использование #if - я бы избегал этого и предпочел бы использовать модель расширяемости. Mono поддерживает Managed Extensibility Framework , который обеспечивает хороший способ «встраивания» кода конкретной платформы во время выполнения.

7
ответ дан 1 December 2019 в 14:22
поделиться

Ознакомьтесь с Mono Migration Analyzer

2
ответ дан 1 December 2019 в 14:22
поделиться

Проект Mono предоставляет документ с рекомендациями по переносимости. Это довольно хорошее место для начала.

2
ответ дан 1 December 2019 в 14:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: