c#
  • ironpython
  • 2010-11-29 9 views 0 likes 
    0

    http://www.ironpython.info/index.php/Using_Python_Classes_from_.NET/CSharp_IP_2.6このIronPythonの例では、@記号は何を行い、どのように実装していますか?

    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#でどうやってやっていますか?何らかの演算子のオーバーロード(基本的に '@'は何でもしたいですか?)実装の例は素晴らしいでしょう。そうでなければ、ここで何が起こっているのですか?

    答えて

    6

    @""は、C#のverbatim string literalです。つまり、その内部のエスケープ文字は解釈されません。この場合

    、PythonコードはC#code文字列変数に格納され、その後、(それ自体では、Python.CreateEngine()を使用して作成した)ScriptEngineを用いScriptSourceからCompiledCodeにコンパイルされます。

    +0

    Googleで「@ C#」を検索していただきありがとうございました – BigOmega

    0

    @はC#コードの一部です。文字列がverbatim string literalであることを意味します。この文字列は、実行されるPythonコードを保持します。

    0
    string path = @"C:\Sweet\now\I\can\use\backslashes\without\writing\them\all\twice.txt" 
    
    関連する問題