【问题标题】:Use Variable of a function in another function without parameters?在没有参数的另一个函数中使用函数的变量?
【发布时间】:2009-10-19 08:20:29
【问题描述】:

我喜欢用函数让我的数据库更动态地插入。

像这样:

private void setValues() {
   string test  = "foo";
   string test2 = "bar";
}
private void WriteToDB() {
    dc dcOfMyDatabase = new dc();

    DBTable myTable = DbTable() {
        field1 = test; // values of other function
        field2 = test2; // values of other function        
    }
}
private void doAll() {
    setValues();
    WriteToDB();
}

当然,我可以使用 WriteToDB() 中的参数来做到这一点……但我有这么多字段,希望它可以用另一种干净的方式工作。

我确信有一种正确的方法可以干净地开发这样的东西。

感谢和问候。

【问题讨论】:

    标签: c# asp.net variables function


    【解决方案1】:

    正确的做法确实是给WriteToDB传参数。如果问题是您有很多参数,请将它们包装在一个包含类中,并将该类的一个实例传递给您的编写函数。

    另外,考虑使用ORM 引擎(例如 LINQ to SQL 或 NHIbernate)而不是直接数据库访问类是否对您有所帮助。

    【讨论】:

      【解决方案2】:

      您可以将它们提升为类成员或属性:

      string test;
      
      private void setValues() {
         test  = "foo";
      }
      

      或:

      string test {get; set;}
      

      您应该阅读有关面向对象的设计和编程的内容 - 这无疑会帮助您以更合乎逻辑的方式组织代码。

      【讨论】:

        【解决方案3】:

        我不确定你想在这里做什么。您的代码 sn-p 有一些错误,如果您尝试运行它,将无法编译。

        话虽如此,如果您正在寻找从代码到数据库的映射,我会查看 Linq To SQL。 Here 的简短介绍。

        【讨论】:

        • 当然它不会编译它:)......只是一个展示我的结构的例子..实际上我的例子工作但有很多代码
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-07-31
        • 2020-06-12
        • 2016-01-16
        • 2013-04-22
        • 1970-01-01
        • 2021-05-09
        相关资源
        最近更新 更多