В этом примере IronPython, что делает символ @ и как он реализован? - PullRequest
0 голосов
/ 29 ноября 2010

http://www.ironpython.info/index.php/Using_Python_Classes_from_.NET/CSharp_IP_2.6

   string code = @"
   print 'test = ' + test
   class MyClass:
       def __init__(self):
           pass

       def somemethod(self):
           print 'in some method'

       def isodd(self, n):
           return 1 == n % 2
   ";

Это '@' часть C # или это что-то добавленное IronPython?Если последнее, как вы это делаете в C #, какая-то перегрузка операторов (в основном я могу заставить '@' делать то, что я хочу и т.д.)?Пример реализации был бы отличным.Иначе, что здесь происходит?

Ответы [ 3 ]

6 голосов
/ 29 ноября 2010

@"" - это буквенный строковый литерал в C #. То есть экранирующие символы внутри него не интерпретируются.

В этом случае код python сохраняется в строковой переменной C # code, а затем компилируется в CompiledCode из ScriptSource с помощью ScriptEngine (который сам создается с помощью Python.CreateEngine() ).

0 голосов
/ 29 ноября 2010
string path = @"C:\Sweet\now\I\can\use\backslashes\without\writing\them\all\twice.txt"
0 голосов
/ 29 ноября 2010

@ является частью кода C #. Это означает, что строка является дословным строковым литералом . Строка содержит код Python для выполнения.

...