2011-06-15 95 views
2

考慮這個C#代碼:IronPython如何訪問C#中定義的公共靜態屬性?

public static class Graphics { 
    public static Color white = new Color(255, 255, 255); 
} 

我可以編譯和IronPython的導入此:

>>> import clr 
>>> clr.AddReference("Graphics") 
>>> import Graphics 
>>> Graphics.white 
<Color 255,255,255> 

但我不能:

>>> import clr 
>>> clr.AddReference("Graphics") 
>>> from Graphics import * 
>>> white 
Traceback (most recent call last): 
    File "/home/dblank/Calico/src/engine.py", line 159, in execute 
    source.Execute(self.manager.scope) 
    File "<string>", line 1, in <module> 
<type 'exceptions.NameError'>: name 'white' is not defined 

有什麼我可以做使白色可訪問?

回答

2

如果您將該字段標記爲只讀,那麼我們將允許通過導入*將其導入,因爲它將被添加到Graphics。 全部

+0

是的,它做到了。有沒有辦法讓公共靜態屬性可見? public static int MyValue {get {} set {}};似乎並沒有出現。 – 2011-06-16 13:44:46

+0

哦,什麼是.all?我們可以添加到C#中的東西嗎? – 2011-06-16 13:47:26