在这个IronPython示例中,@符号正在做什么以及如何实现?

Met*_*uru 0 c# ironpython

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
   ";
Run Code Online (Sandbox Code Playgroud)

是'@'C#的一部分还是IronPython添加的东西?如果是后者,你如何在C#中做到这一点,某种运算符重载(基本上我可以让'@'做我想做的事情等等)?示例实现会很棒.否则,这里发生了什么?

Pow*_*ord 6

@""是C#中的逐字字符串文字.也就是说,其中的转义字符不会被解释.

在这种情况下,python代码存储在C#code字符串变量中,然后CompiledCodeScriptSource使用a 编译成a ScriptEngine(它本身是使用创建的Python.CreateEngine()).