2011-08-26 57 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