PR
Calendar
Keyword Search
Category
Free Space
IronPythonでのnullは? (投稿者: bucoさん)
はじめまして。
Pythonに触れ始めて時折こちらのサイトをご参考にさせていただいております。
ところで、こういったところにご質問を書くのもすごく恐縮なのですが、文献や参考サイトも少なくどうしても分からないことがあるのでご質問させてください。
IronPythonからC#で作成したdllを呼び出して使用しようとしました。そこで、dllの中に関数の引数にnullを渡したいのですが、渡し方が分りません。PythonではNoneとなっておりますが、C#にNoneを渡すと型が違いますとエラーがでます。
C#のdllの引数にIronPythonからC#でいうnullを渡すことはできないのでしょうか。
ご質問に答えていただければ幸いです。 (April 6, 2009 13:50:58)
from System import IntPtr
しておいて、IntPtr.Zero を渡したらどうなるでしょうか?
(April 10, 2009 07:39:48)
ご返答ありがとうございます。
IntPtr.Zeroを渡すことで無事引数を渡して関数を実行することができました。
ありがとうございます! (April 10, 2009 16:51:39)
このフィールドの値は、 null 参照 (Visual Basic では Nothing) と等価ではありません。 IntPtr のインスタンスが 0 以外の値に設定されているかどうかを効率的に確認するにはこのフィールドを使用します。
たとえば、変数 ip が IntPtr のインスタンスであるとします。この変数が設定されているかどうかを確認するには、同変数とコンストラクタから返された値 (たとえば " if ip != new IntPtr(0)... ") を対比します。コンストラクタを呼び出して初期化前の状態のポインタを取得するのは非効率的です。その場合は " if ip != IntPtr.Zero... " または " if !IntPtr.Zero.Equals(ip)... " とコーディングすることをお勧めします。
foreach (Process p in Process.GetProcesses()) {
if (p.MainWindowHandle != IntPtr.Zero ) {
Console.WriteLine(p.ProcessName
+ " : " + p.MainWindowTitle);
}
}
>>> import clr
>>> clr.AddReferenceToFile("csextend.dll")
>>> import Simple
>>> from System import IntPtr
>>> Simple.MessageBox(IntPtr(0), "hello IronPython", "hello", 0)
1
IronPython 2.0 Beta 2 2008.05.03
新しい出版の形と IronPython 本 2008.04.28 コメント(1)
ブログに IronPython のカテゴリを追加 2008.04.25