2009-07-04 74 views
0

我有asp.net页面,我有组合框。我非常困惑的是,因为我有两个办法什么时候应该写在asp.net类的静态函数

  1. 获取组合框的数据如何填补这一组合:通过创建我的数据库类的对象。并为组合框数据调用函数。

  2. 获取组合框的数据:使用静态函数

我们什么时候应该创建静态功能,以及我们如何可以决定功能是否应该是静态或没有。

假设我需要根据城市ID来填充居住在城市的人数,并且还有像商业团体,服务组,学生这样的过滤条件。

什么是填充组合框的更好方法。

回答

1

函数应该是静态的,如果它应该是无状态的。就那么简单。

+0

这是不正确的。你可以有使用静态状态的静态方法。你可以有实例方法,它不使用任何状态。两种方式都是正确的。 – TcKs 2009-07-04 11:27:00

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

你让你的功能的静态,如果他们不需要在类实例上工作,并访问该实例州。

静态类和函数在Web应用程序中很常见,因为这些应用程序大多都是无状态HTTP,无状态。或者至少他们通过使用会话,cookie或向HTML注入一些帮助内容等一些技巧来模仿状态。但即便如此,PC内存中几乎没有状态 - 创建对象以服务请求并在响应发送后删除。所以,类和函数大多在那里打包用户数据并将其发送到数据库并反向。大多数情况下,只是数据流处理。

相关问题