看你用在什么场合?如果是web应用程序,可以用session或ViewState变量来存取,可以试试

解决方案 »

  1.   

    谢谢latahu(邋遢胡) ,但不是WEB
      

  2.   

    int getValue(string wl)
    {
    FieldInfo fi=this.GetType().GetField("a"+wl
    ,BindingFlags.NonPublic|BindingFlags.Instance
    );
    if(fi==null)
    throw(new Exception("cant find a"+wl));
    if(fi.FieldType!=typeof(int))
    throw(new Exception("type unmatched"));
    return (int)fi.GetValue(this);
    }
      

  3.   

    using System;
    using System.Reflection;namespace XX
    {
    class Class1
    {
    int bc=100;
    int abc=1000;
    public int getValue(string wl)
    {
    FieldInfo fi=this.GetType().GetField("a"+wl
    ,BindingFlags.NonPublic|BindingFlags.Instance
    );
    if(fi==null)
    throw(new Exception("cant find a"+wl));
    if(fi.FieldType!=typeof(int))
    throw(new Exception("type unmatched"));
    return (int)fi.GetValue(this);
    }
    public void Run()
    {
    Console.Write(this.getValue("bc"));
    }
    }
    class XX
    {
    [STAThread]
    static void Main(string[] args)
    {
    new Class1().Run();
    }
    }
    }
      

  4.   

    当需要程序支持以多种输出语言生成源代码时,CodeDOM 提供的功能会十分有用。您可以设计一个程序,通过使用 CodeDOM 元素汇编出对象图来生成源代码模型的结构。使用支持的编程语言,该对象图可以呈现为源代码。还可以使用 CodeDOM 通过外部编译器将源代码编译为二进制可执行文件。CodeDOM 的一些一般用途包括: 模板化代码的生成:生成 ASP.NET、基于 XML 的 Web 服务客户端代理、代码向导、设计器或ASP.NET代码发出机制的代码。 
    动态编译:支持以一种或多种语言进行代码编译。 
    生成 CodeDOM 图
    要生成 CodeDOM 对象图(即源代码模型),您可以使用 System.CodeDom 和 System.CodeDom.Compiler 命名空间提供的类。为示例程序“Hello World”生成源代码模型
    以下演练提供了一个如何生成 CodeDOM 对象图的示例,该对象图表示一个简单的应用程序“Hello World”的代码。下面提供了该示例的完整的源代码。编译单元编译单元引用可进行编译的 CodeDOM 树(即源代码模型)。CodeDOM 代码生成器和代码编译器处理编译单元引用的对象图。CodeDOM 定义一个名为 CodeCompileUnit 的单元,该单元可以引用以要编译的源代码为模型的 CodeDOM 对象图。CodeSnippetCompileUnit 可以包含已经以目标语言表示的源代码段,但不能呈现为另一种语言。要创建简单应用程序的对象图,您必须汇编源代码模型并从 CodeCompileUnit 对其进行引用。您可以选择以实例化 CodeCompileUnit 开始。您可以用本示例中示范的语法创建一个新的编译单元:[C#]
    CodeCompileUnit compileunit = new CodeCompileUnit();
    [Visual Basic]
    Dim compileunit As New CodeCompileUnit()
    定义和导入命名空间要定义命名空间,请创建一个 CodeNamespace 并使用适当的构造函数或通过设置其 Name 属性给它分配一个名称。下面的示例使用分配指定名称的构造函数对此进行了示范:[C#]
    CodeNamespace Samples = new CodeNamespace("Samples");
    [Visual Basic]
    Dim Samples As New CodeNamespace("Samples")
    要将命名空间导入添加到命名空间,为每个要导入的命名空间调用 CodeNamespace.Imports.Add,然后为每个要导入的命名空间传递 CodeNamespaceImport,它表示要导入的命名空间。下面的示例示范了对名为 Samples 的 CodeNamespace 使用该方法:[C#]
    Samples.Imports.Add( new CodeNamespaceImport("System") );
    [Visual Basic]
    Dim Import1 As New CodeNamespaceImport("System")
    Samples.Imports.Add( Import1 )
    定义类要使用 CodeDOM 声明一个类、结构、接口或枚举,请创建一个新 CodeTypeDeclaration 并向其 Name 属性给它分配一个名称。以下示例对此进行了示范:[C#]
    CodeTypeDeclaration Class1 = new CodeTypeDeclaration("Class1");
    [Visual Basic]
    Dim Class1 As New CodeTypeDeclaration("Class1")
    要将类型添加到命名空间,请对对象(该对象表示将包含该类型的命名空间)调用 CodeNamespace.Types.Add,然后将引用传递到 CodeTypeDeclaration,它表示要添加到命名空间的类型。下面的示例示范了如何将名为 Class1 的类添加到名为 Samples 的命名空间:[C#]
    Samples.Types.Add(Class1);
    [Visual Basic]
    Samples.Types.Add(Class1)
    将类成员添加到类CodeDOM 提供了多种可用来表示类成员的元素。每个类成员都可被添加到对象模型中,方法是调用 CodeTypeDeclaration.Members.Add 方法,然后将引用传递到 CodeDOM 元素(该元素表示这个要添加的成员)。如果您正在为可执行程序定义代码,通过创建 CodeEntryPointMethod 来表示该方法以指出程序的入口点是很有必要的。 下面的示例示范了如何定义入口点方法(该方法包含调用 System.Console.WriteLine 以输出“Hello World!”的 CodeMethodInvokeExpression):[C#]
    CodeEntryPointMethod Start = new CodeEntryPointMethod();
    CodeMethodInvokeExpression cs1 = new CodeMethodInvokeExpression( new CodeTypeReferenceExpression("System.Console"), "WriteLine", new CodePrimitiveExpression("Hello World!") );
    Start.Statements.Add(new CodeExpressionStatement(cs1));
    虽然要添加的语句是一个表达式,但是 CodeEntryPointMethod.Statements 集合接受语句,而不接受表达式。因此,创建 CodeExpressionStatement 来引用并封装 CodeMethodInvokeExpression。表示 CodeDOM 元素不能方便地表示的代码CodeDOM 不会为表示各种可能的编程语言功能而提供相应元素。CodeDOM 支持几种主要类型的代码元素,这些代码元素出现在支持公共语言运行库的编程语言中。虽然 CodeDOM 不能自动将代码片段翻译成ASP.NET语言,但是 CodeDOM 元素无法方便表示的代码可以封装在 CodeSnippetExpression、CodeSnippetStatement 或 CodeSnippetCompileUnit 中。