我在窗体窗体上有一个组合框,并且我有一个方法与静态一样声明为private static DataTable ParseTable(HtmlNode table)
现在我想在该方法中使用组合框来使用组合框属性,但是我不能访问组合框或组合框本身的任何属性。如果我将组合框声明设置为静态,那么可以在该静态方法中访问它。但是,在该静态方法中访问combbox属性的任何其他方法,因为我不想将组合框声明作为静态的。在静态方法中访问非静态combbox属性
回答
您可以将combobox作为参数传递给您的方法。为什么你需要有ParseTable
方法静态?
更新:您不能在静态上下文中访问非静态类的成员。所以如果你仍然需要一个静态方法,你可以做的唯一的事情就是使用方法的参数将你的组合框传递给那个方法。
表单中没有必要使用静态ParseTable方法。如果您希望该功能与表单上的控件进行交互,请从该函数中移除静态。
从阅读评论,如果您只有一种形式,没有性能改进。如果你有多个表单调用这个静态方法,那么ParseTable应该被移动到一个单独的静态类中。
如果您使用此ParseTable方法加载10个或更多组合框,那么我建议您使用Anthony Pegram和Andrew Bezzub建议,并根据需要传递ComboBox控件。我会避免传递这个(表单),因为它通常会产生“丑陋”的难以管理的代码。
您可以通过将“this”传递给静态方法并访问通过“this”需要的任何成员来访问组合框。
@Adrian Faciu,请简要解释.. – Harikrishna 2010-04-02 06:33:07
@Harikrishna,看看我的答案。除了不像我的例子那样接收一个TextBox,你会收到一个表单类型的对象(Form1?)。然后可以使用“this”作为参数来调用该函数。函数本身可以访问参数的可访问成员。 – 2010-04-02 06:43:31
@Harikrishna,安东尼是正确的,它会是相同的,但不是一个TextBox参数,你会有一个表单。如果您只需要textBox中的数据,您应该使用该数据,使用“this”您可以访问表单的所有成员。 – 2010-04-02 07:12:58
您将不能简单地从静态函数访问实例成员。获得访问权限的一种方法是可以将控件作为参数传递给函数。考虑这个例子。
private void button1_Click(object sender, EventArgs e)
{
Form1.DoSomething(textBox1);
}
public static void DoSomething(TextBox textbox)
{
textbox.Text = DateTime.Now.ToString();
}
- 1. 通过静态和非静态方法访问静态属性?
- 2. 如何在静态方法中访问父非静态属性,在PHP中?
- 3. 如何在静态方法中访问静态和非静态方法
- 4. 从PHP中的非静态方法访问不正确的静态属性
- 5. 静态/非静态方法问题
- 6. 静态属性调用WPF中的非静态方法
- 7. 从C++中的静态方法访问非静态类变量
- 8. 从静态上下文中访问非静态方法
- 9. 访问静态属性PARAMS
- 10. 静态属性引用非静态方法
- 11. 访问非静态类的静态类
- 12. 静态和非静态访问值
- 13. 从静态方法访问非静态成员变量
- 14. 为什么非静态方法可以访问静态字段?
- 15. 从静态方法访问非静态枚举值
- 16. 无法在静态环境中访问非静态字段“Repeater”
- 17. 无法在静态环境中访问非静态字段'lblSystemStatus'
- 18. 访问非静态DAL方法
- 19. 在java中的静态方法,我可以以非静态方式访问静态方法吗?
- 20. 非静态方法问题
- 21. 在Sencha Touch中访问静态属性
- 22. 当制备方法静态 - 需要一个对象引用来访问非静态字段,访问非静态字段,方法或属性是必需的
- 23. C#编译器:无法在非静态上下文中访问静态方法
- 24. 使用这个 - >语法在PHP访问非静态属性
- 25. 泛型方法:静态与非静态
- 26. 静态和非静态方法工作
- 27. 静态/非静态方法参考
- 28. powermockito静态和非静态方法链
- 29. 不能使静态方法非静态
- 30. 非静态方法说它的静态?
@Andrew Bezzub,这个方法经常被调用,我想使应用程序的性能更好,所以我已经声明方法是静态的。 – Harikrishna 2010-04-02 06:34:17
@Harikrishna,我认为这不是性能优化的正确场所。 – 2010-04-02 06:38:19
@Andrew Bezzub,可能有将近十个组合框,甚至没有固定数量的可以在窗体上的组合框。 – Harikrishna 2010-04-02 06:43:26