C# к VB.Net: Почему этому не удается скомпилировать при преобразовании в VB?

Одна из возможностей - regexp_replace():

select regexp_replace(str, ' [^ ]+ 

Что полезно в regexp_replace(), так это то, что вы можете быть более понятными в отношении строк, которые хотите заменить:

select regexp_replace(str, ' (road|rd|street|ave), '')
, '') from (select 'abcd asdf 90909 ddd' as str from dual) x

Что полезно в regexp_replace(), так это то, что вы можете быть более понятными в отношении строк, которые хотите заменить:

select regexp_replace(str, ' (road|rd|street|ave), '')
7
задан Mark Hurd 30 August 2012 в 08:29
поделиться

3 ответа

Проблема только происходит когда <System.Runtime.CompilerServices.Extension()> присутствует. Компилятор VB вводит ограничение, что ограничения должны поддаваться проверке с одним только первым аргументом. Начиная с первого аргумента в пользу дополнительного метода (Dictionary(Of KeyType, ListType)) иждивенец на третий аргумент (ValueType) через IList(Of TValue) ограничение, это не может быть скомпилировано в VB.

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

Причина объяснена здесь: http://msdn.microsoft.com/en-us/library/bb385206.aspx

Компилятор VB мог бы быть немного более придирчивым в этом случае, потому что он должен поддерживать дополнительные параметры. (Еще) нет никаких дополнительных параметров в C#.

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

Я подозревал бы, что проблема состоит в том, что Вы использовали ValueType для в качестве названия одного из параметров типа, который является фактическим типом в библиотеке классов.NET (Система. ValueType). Я могу предположить, что C# и VB.NET обрабатывают это по-другому. Попробуйте его другим именем, как TValue (и TKey только, чтобы быть последовательными).

0
ответ дан 7 December 2019 в 03:22
поделиться
Другие вопросы по тегам:

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