如何在“使用”定义部分中将静态类打开为静态?

问题描述:

所以我想打开动态类是类似的东西:如何在“使用”定义部分中将静态类打开为静态?

using System ... 
... 
using System.Windows.Forms; 
using core = new myNamespace.myClass(); // Sure it doesn't work but how to realize it ? 

当我做

使用myNamespace.myClass();我不能使用它,因为myClass是动态的,但我希望它创建,因为这个类创建并正在处理它。我想有机会varables/MyClass的方法aslike从这个类,像

core.X必须为X.

也许我只是想类似的接口相同,但作为一类。

好,我会尽量正是我想解释一下:

比如我已经得到了部分课程,而且每一个有2个文件!和...第二个文件的内容是相同的。我如何为所有部分类使用一个文件?像一个模块,但没有前缀!

,所以我知道我的英语是不完美的,我会加一个代码示例:

public partial class FRIIB : Form 
{ 
    private string x = username; 
} 

public partial class FRIIB : Form 
{ 
    private string username = "hi"; 
} 

public partial class LOLO : Form 
{ 
    private string x = username; 
    // I don't want to create another file with "username" definition 
} 

我想使用Mixin ...它看起来就像正是我想要得到。

+0

你的代码内使用using语句混乱的(这保证的Dispose()被调用)?因为你试图做的事情是不可能的。 – SirViver 2011-05-16 10:54:56

+1

你想创建myClass的别名吗? – 2011-05-16 10:54:57

+0

你希望实现什么?你为什么想这样做? – 2011-05-16 10:55:21

一个using语句需要是单一方法的上下文/范围内。

如果您不能将范围限制为某个方法,则需要手动处理该范围,通常是在对象上实现IDisposable,然后在Dispose()中执行处理。有时(但很少),你可能还想要一个终结器来捕获未收集的对象,但重点是:收集非常罕见。

没有为处置静态领域没有内在机制 - 你不得不添加静态Release()方法(或类似)的清洁程序退出时调用。

还有一个using别名这看起来有点像你的代码,但确实完全不相关的东西(它允许你为一个单一类型的使用替代的名称,无论是为了方便或为了避免歧义,它仅限于单个文件)。

如果我理解正确你的问题,那么你正在寻找的东西是这样的:

object obj = Activator.CreateInstance(Assembly.LoadFrom("My Assembly").GetType("myNamespace.myClass", true)); 
core = obj as myNamespace.myClass; 

第一条语句动态创建您的自定义类型的一个实例。第二个语句将创建的对象转换为您的自定义类型。

此代码片段仅显示正向流程,当然,我也推荐在您的代码中负责流向。

我希望这有助于:-)