【问题标题】:Should I use static fields or private using an instance of the class to access我应该使用静态字段还是私有使用类的实例来访问
【发布时间】:2013-06-17 18:08:47
【问题描述】:

我正在访问类的字段,如果我将它们用作静态字段,我可以从类中使用它们,而无需创建类的实例,这意味着更少的代码。但我应该吗?最佳做法是什么?

public class myClass
{
    private static DataSet myDS;
    myClass.myDS = new DataSet();
}

private DataSet myDS;

public DataSet MyDS
{
    get { return myDS; }
    set { myDS = value; }
}

myClass a = new myClass();
a.MyDS = new DataSet();

【问题讨论】:

  • 你到底是什么意思'我需要控制何时实例化类'?我在一个方法中创建它的一个实例来容纳我的数据访问。myClass a = new myClass() ; myClass.MyConn.ConnectionString... a.MyConn.Open(); a.MyDS = new DataSet(); 等然后我填充我的数据适配器调用一个方法来用数据行填充文本框,然后关闭连接。跨度>
  • 什么???自言自语?
  • 我在回复一条评论,后来被发帖人删除了。
  • 如果您将数据集设为类成员,则该类的所有实例都将拥有自己的数据集。另一方面,使用静态方法..您的应用程序将访问相同的唯一数据集(可能会出现并发问题)。我认为这真的取决于你想通过这样的实现来实现什么。

标签: c# winforms .net-3.5 ms-access-2010 visual-studio-express


【解决方案1】:

这完全取决于您希望如何使用班级成员以及您希望如何控制对这些成员的访问。它与编写更少的代码无关。在您提供的示例中,如果您想在“myClass”的所有实例中使用相同的数据集,或者如果属性是公共/内部的,则在您的应用程序中使用相同的数据集,然后将其设为静态。如果您每次创建“myClass”实例时都需要一个新的 DataSet,则将其设为非静态。

【讨论】:

    猜你喜欢
    • 2013-01-15
    • 2014-05-24
    • 2015-11-25
    • 1970-01-01
    • 2013-09-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-17
    相关资源
    最近更新 更多