2009-07-04 14 views
0

私はコンボボックスを持っているasp.netページを持っています。私は私がいつasp.netクラスの静的関数を書く必要があります

  1. は、コンボボックスのデータをフェッチ2つのアプローチを持っていますので、どのようにコンボを埋めるためにすることを非常に混乱しています:私のデータベースクラスのオブジェクトを作成することによって。コンボボックスデータのコール機能我々は静的関数を作成する必要があります場合は、静的な機能

を使用して、どのように我々は、関数が静的すべきか否かを決定することができます:

  • は、コンボボックスのデータをフェッチします。

    都市IDに基づいて市に住む人々のうち、いいえを記入する必要があり、ビジネスグループ、サービスグル​​ープ、学生のようなフィルタの条件がもう1つあるとします。

    コンボボックスを充填する方が良いでしょうか。

  • 答えて

    1

    機能はステートレスでなければならない場合は静的にする必要があります。そのような単純な。

    +0

    本当ではありません。静的状態を使用する静的メソッドを持つことができます。また、インスタンスメソッドを使用することもできます。インスタンスメソッドは、どの状態も使用しません。どちらも正しいです。 – TcKs

    +0

    @TcKsあなたは「やることができる」ということがたくさんあります。静的関数を使用するときは質問が* *でした。ステートレス機能は静的機能を使用すべきであるという兆候ではありませんか? –

    +0

    @No、 "stateless"は静的関数を使うべきではありません。静的関数では、インスタンスメソッドよりもはるかに複雑な多型を使用しています。 – TcKs

    1

    あなたのコンボボックスを埋める方法は、たくさんあります。あなたは、コンボボックスのためのクラスが同じインタフェースで埋めることができます(あなたがしたい場合、または他の誰のイベントで)あなたはコンボボックスから派生することができますし、Loadイベントで彼らの上埋めることができ

    • (用例: 例:UserConboBoxFiller、InvoiceComboBoxFiller、ArticleComboBoxFillerなど)
    • 書いたように、コンボボックスの塗りつぶしに静的メソッドを使用できます。シンプルなシナリオでは間違っているわけではありません。

    あなたはコンボボックスを埋めるためのいくつかのフィルタ条件を持っている場合は、私が埋めるためのクラスを使用するお勧め:

    public interface IComboBoxFiller { 
        void Fill(ComboBox cbo); 
    } 
    
    public class UsersComboBoxFiller : IComboBoxFiller { 
        public bool OnlyOnlineUsers {get;set;} 
    
        public void Fill(ComboBox cbo) { 
         // there is logic for combobox filling 
         // you can dynamicly generate where condition 
         // by the "OnlyOnlineUsers" 
        } 
    } 
    
    0

    彼らはクラスのインスタンス上で動作し、そのインスタンスにアクセスする必要がない場合は、あなたの関数は静的にします状態。

    静的なクラスと関数は、ステートレスなHTTPに対してステートレスな作業を行うため、Webアプリケーションでよく使用されます。少なくとも、セッション、クッキーなどのトリックを使用したり、ヘルパーのコンテンツをHTMLに挿入したりして、ステートフルなものを模倣します。しかし、そうであっても、PCメモリには状態がほとんどありません。オブジェクトは要求を処理するために作成され、応答が送信された後に削除されます。したがって、クラスと関数は主にユーザーデータをパックし、データベースに逆方向に送信します。ほとんどの場合、データフローの処理だけです。

    関連する問題