2010-11-09 4 views
1

Можно создать дубликат:
CompilerServices.Operators equivalent on C#Есть ли версия C# для Microsoft.VisualBasic.CompilerServices.Operators?

Я искал Microsoft.CSharp.CompilerServices.Operators, но не смог найти его.

+2

@Nifle: Принятый ответ на этот вопрос говорит, чтобы добавить ссылку на 'Microsoft.VisualBasic' сборки проекта, и вызовите 'GetMethod()'. Я не думаю, что это то, чего хочет OP. –

+0

@ Роберт Харви: но это ответ на этот вопрос или есть простое «Нет». Этот класс использует компилятор Visual Basic, и поэтому нет смысла добавлять его в сборку C#. –

+0

@Tim, я считаю, что этот вопрос задает вопрос: «Существует ли эквивалент операторам, таким как« DivideObject », которые реализуют семантику C# или VB». В этом случае это другой вопрос с потенциальными ответами (см. Мой пример). – JaredPar

ответ

2

В сборке времени C# нет реального эквивалента.

Однако многие из этих методов по существу реализуют поздние связанные операции для VB.Net в декларативном методе (и действительно есть случаи, когда последнее связующее просто просто отбрасывает эти методы для операций). Таким образом, они могут быть реплицированы в C#, определяя методы, которые просто явно откладываются на динамическое связующее C#.

Например, приблизительный эквивалент DivideObject в C# будет следующим

public static dynamic DivideObject(dynamic left, dynamic right) 
{ 
    return left/right; 
} 
+0

Спасибо, Джаред, так что нужно повторить это, не так ли? В чем причина того, что C# не имеет это как VB? Также, если кто-то должен использовать pre .NET 4.0? Предполагаю тогда, нужно использовать сборку VB? –

+1

@Joan Я не уверен, почему C# этого не имеет. Вероятно, лучший вопрос в том, почему VB разоблачил его в первую очередь. Да к вопросу о 4.0. – JaredPar

+0

Спасибо, Джаред, интересный вопрос. –

Смежные вопросы