0

私は手続き型の世界から来たので、これについては我慢してください。「適切な」用語がわかりません。私は関数を取得します-クラスはそれほど多くありません(それらは青写真だと思いますが、おそらくそれらがどれほど役立つかを理解していないため、まだそれらを使用するように自分自身を納得させることができません)

C# コンソール アプリケーションを作成しようとしています (VS2010)。これは手続き的な性質で動作します (先頭から開始し、時々関数を参照するか、catch を試行してから終了します)。私の問題は、アプリケーションに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 などのプロパティがある場合があります。

各行は、クラスのインスタンスを表します。

クラスを使用することは単なる抽象化であり、クラスを使用するとパーティーに多くのことがもたらされますが、これらの中で最も明白なことの 1 つは、コードを読みやすくすることです。この単純な例を検討してください。

// 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 に答える