Обратная / передовая совместимость с C # .NET framework [duplicate]

Вот еще один способ, который может быть быстрее, с точки зрения времени вычисления, чем повторение. Не уверен. Идея состоит в том, чтобы преобразовать массив в строку, усечь его и получить размер нового массива.

Например, чтобы найти индекс 'd':

arr=(a b c d)    
temp=`echo ${arr[@]}`
temp=( ${temp%%d*} )
index=${#temp[@]}

Вы можете превратить это в функцию, подобную:

get-index() {

    Item=$1
    Array="$2[@]"

    ArgArray=( ${!Array} )
    NewArray=( ${!Array%%${Item}*} )

    Index=${#NewArray[@]}

    [[ ${#ArgArray[@]} == ${#NewArray[@]} ]] && echo -1 || echo $Index

}

. Тогда вы могли бы вызвать:

get-index d arr

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

index=`get-index d arr`
0
задан maniak1982 14 July 2015 в 20:26
поделиться

2 ответа

Нет, вы не можете ссылаться на DLL, скомпилированную в .NET 4.0, из программы, скомпилированной в .NET 3.5. Приложения .NET Framework обычно имеют обратную совместимость, то есть вы можете ссылаться на сборку .NET 3.5 из кода .NET 4.0, но обратное неверно.

Вы можете попробовать скомпилировать проект .NET 3.5 в 4.0 или компилировать сборку .NET 4.0 в .NET 3.5, любой из которых будет работать, если они являются опцией.

2
ответ дан maniak1982 22 August 2018 в 03:12
поделиться

.Net Framework, как правило, имеет обратную совместимость, поэтому вы можете загружать сборку .Net 3.5 в среду выполнения .NET, но не наоборот.

Вы должны настроить таргетинг своих сборок на самую низкую поддерживаемую версию времени выполнения.

Вот несколько дополнительных чтений, которые должны отвечать на большинство ваших вопросов ...

https://msdn.microsoft.com/en-us/ библиотека / ff602939 (v = vs.110) .aspx

3
ответ дан Jim 22 August 2018 в 03:12
поделиться
Другие вопросы по тегам:

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