2016-03-22 5 views
1

Я кодирую API-интерфейс Podio .Net с помощью VB, но с трудностью переносит пример кода C# для словаря диапазона дат в эквивалент VB.Net. Вот отрывок из их клиентской документации API .NET:Синтаксис VB.Net для фильтра диапазона дат

var filter = new Dictionary<string, object> 
{ 
    {"somekey", from = new DateTime(2013, 9, 1), to = new DateTime(2013, 9, 30) } 
}; 

Я не опытный в C#, так что был бы признателен за любую помощь в эквивалентном синтаксиса VB.

+1

[C# to VB converter] (http://converter.telerik.com/) – Turnip

+0

@DaveDoknjas Я «пробовал» этот сайт много раз – Turnip

+0

@Turnip: я удалил свой комментарий - я не понял что код C# недействителен в первую очередь, когда я попробовал этот конвертер. –

ответ

1

Онлайновые конвертеры обрабатывают это очень плохо. SLaks упомянул, что мы могли бы назвать метод расширения здесь, который объединяет 2 даты в значение Словаря, но я не мог заставить это работать на C#, поэтому я не думаю, что это так.

Единственный способ иметь смысл исходных C# код, если мы предположим, что вы либо не копировать его правильно или в документации API была неправильна, и что код должен был быть:

var filter = new Dictionary<string, object>() 
{ 
    {"somekey", new { from = new DateTime(2013, 9, 1), to = new DateTime(2013, 9, 30)} } 
}; 

в этом случае преобразование является простым и, кажется, соответствует тому, что работал для вас, как указано в вашем комментарии:

Dim filter = New Dictionary(Of String, Object)() From { 
    { 
     "somekey", New With { 
      Key .from = New Date(2013, 9, 1), 
      Key .to = New Date(2013, 9, 30) 
     } 
    } 
} 

и чтобы быть справедливым, онлайн конвертер упомянутый ранее делает преобразовать этот скорректированный C# код штрафа.

+0

На самом деле, если это метод расширения, это невозможно преобразовать в VB. Это назначение, а не равенство. – SLaks

+0

Спасибо Дэйву за ответ. Тем временем я смог заставить его работать с использованием синтаксиса VB.Net для словарной записи {«somekey», New With {Key .from = fromarg, Key .to = toarg}} –

+0

@SLaks: это назначение, но это нормально внутри этой конструкции VB. –