2011-08-26 78 views
1

我有公共靜態成員TheRenderer的類RenderManager。而不是RenderManager.TheRenderer可以創建別名像MyRenderer或任何?類公共靜態成員的C#別名?

謝謝

+0

不確定您的會員的別名是什麼意思。 – BoltClock

+0

這可能是有趣的:http://stackoverflow.com/questions/1423809/how-to-import-a-static-class-in-c – alun

+1

你試圖解決的實際問題是什麼? –

回答

0

你僅僅意味着var MyRenderer = RenderManager.TheRenderer;?即將靜態成員的值分配給名爲MyRenderer的變量?


不是,不像valipour的解決辦法,如果你以後的RenderManager.TheRenderer價值變動分配給它,MyRenderer將有舊值。

0

您可以聲明類型爲Func或Action的變量。

如果TheRenderer有返回值:

static Func<bool> MyRenderer =() => RenderManager.TheRenderer(); 

如果不是:

static Action MyRenderer =() => RenderManager.TheRenderer(); 

如果TheRenderer接受一些輸入參數,那麼你應該使用Func鍵<的其他形式>和行動<>。

Func<OutT, In1T, In2T, ...> 
Action<In1T, In2T, ...> 
+0

這可以起作用,除了在訪問RenderManager.TheRenderer()的返回值之前需要調用'Invoke()'方法,即'MyRenderer.Invoke()'。 –

0

我不認爲你可以這樣做。唯一的可能性是建立一個別名Type而不是它的成員,這樣的事情:

using rnd = RendererManager; 

//and in code somewhere use 

rnd.TheRenderer 

希望我正確理解你的意思。

2

您可以創建指向該對象的類或方法級符號,但不能創建指向該對象的真正的全局別名no。它仍然必須在某些其他對象中使用名稱空間。

儘管(在一個函數或類中),你可以做類似var renderer = RenderManager.TheRenderer的事情,但是在任何你想使用別名的地方你都必須這樣做。

+0

對,就這樣你必須到處去做。我希望有其他的方法。 – pokoko222