0

我来自一个程序世界,所以请耐心等待。我不确定“正确”的术语。我得到了函数——类不多(我收集它们是蓝图,但我还不能说服自己使用它们,可能是因为我不明白它们有多大帮助)

我正在尝试创建一个 C# 控制台应用程序(在 VS2010 中)。它具有程序性质(从顶部开始,可能每隔一段时间引用一个函数或尝试捕获然后退出)。我的问题是应用程序会有 4 个部分 - 定义 sql 字符串的部分、连接到数据库的部分、执行 sql 语句的部分以及根据结果进行额外计算的部分。

我正在尝试确定一种将这些代码块拆分为我可以调用的不同文件的方法 - 基本上保持默认的“program.cs”不会过于庞大。我的最新代码可以滚动浏览以挑选项目。

建议?

(我知道这是非常主观的)

[添加]

我的代码结构现在看起来类似于以下 - 注意,[[[[[]]]]] 是我所说的块:

        [[[[[
        string sqlQueryFetchCalls = "sql lives here";
        ... and more strings for sql... and more... and more
        ]]]]]

        SqlConnection mssqlConnection = new SqlConnection(params);
        try{
            mssqlConnection.Open();
            System.Console.WriteLine("connection opened");}
        catch (Exception errorVar){
            output.Text = errorVar.ToString();}

        [[[[[
        SqlDataReader results = null;
        SqlCommand exec_sqlQueryFetchCalls = new SqlCommand(sqlQueryFetchCalls, mssqlConnection);
        results = exec_sqlQueryFetchCalls.ExecuteReader();

        while (results.Read())
        {
            // do something
            }results.Close();

        ... again... again ... again... again, though the resulting actions are quite different each time ]]]]]

        mssqlConnection.Close();
4

2 回答 2

3

虽然这不是安排代码的最佳方式,但可以做到。

如果您正在使用static方法,只需确保所有方法都在同一个命名空间中。然后他们都将能够看到对方。

您可以使用单个类并使用partial关键字将定义拆分到多个文件中。

但是,我建议您阅读更多关于类及其组织方式的内容,因为如果使用它们,您会发现管理代码要容易得多。

于 2012-09-19T20:53:10.390 回答
0

类通常意味着“名词”

您的“部分”听起来像(静态?)方法(即函数)。

您可以使用类来表示来自 SQL 数据库的数据。一个典型的例子是,例如,如果您在数据库中存储有关人员的数据,那么通常您可能有一个名为 Person 的类。您的班级中可能有属性,例如 Age 和 Name。

每行将代表您的类的一个实例。

使用类只是一种抽象,使用类为聚会带来了一大堆东西,但其中最明显的一个是它使您的代码易于阅读,请考虑这个简单的示例

// Remember Person would be a class you defined somewhere else

// Get a list of people from the database
List<Person> people = GetPeopleFromDatabase();

 // do something to each row in the database .. or person in your List<>
foreach (person in people)
 {
    Console.WriteLine(person.Name  + " is " person.Age + " years old");
 }

这比理解容易得多

    results = exec_sqlQueryFetchCalls.ExecuteReader();

    while (results.Read())
    {
         Console.WriteLine(row[0]  + " is " + row[2] + " years old");
    }
于 2012-09-19T21:05:15.290 回答