在没有参数的另一个函数中使用函数的变量?

时间:2009-10-19 08:20:30

标签: c# asp.net variables function

我喜欢使用函数更加动态地插入数据库。

像这样:

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()中的参数来做...但我有很多字段,希望它能以另一种干净的方式工作。

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

谢谢和问候。

3 个答案:

答案 0 :(得分:3)

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

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

答案 1 :(得分:2)

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

string test;

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

或:

string test {get; set;}

您应该阅读有关面向对象的设计和编程 - 这将有助于您以更合理的方式组织代码。

答案 2 :(得分:0)

我不确定你在这里要做什么。您的代码段中有一些错误,如果您尝试运行它,则无法编译。

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