相关疑难解决方法(0)

CS0120:非静态字段,方法或属性'foo'需要对象引用

考虑:

namespace WindowsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            //int[] val = { 0, 0};
            int val;
            if (textBox1.Text == "")
            {
                MessageBox.Show("Input any no");
            }
            else
            {
                val = Convert.ToInt32(textBox1.Text);
                Thread ot1 = new Thread(new ParameterizedThreadStart(SumData));
                ot1.Start(val);
            }
        }

        private static void ReadData(object state)
        {
            System.Windows.Forms.Application.Run();
        }

        void setTextboxText(int result)
        {
            if (this.InvokeRequired)
            {
                this.Invoke(new IntDelegate(SetTextboxTextSafe), new object[] { result });
            }
            else
            {
                SetTextboxTextSafe(result); …
Run Code Online (Sandbox Code Playgroud)

c#

242
推荐指数
6
解决办法
92万
查看次数

匿名方法和代理

我试图理解为什么BeginInvoke方法不接受匿名方法.

void bgWorker_ProgressChanged(object sender, ProgressChangedEventArgs e)
{
    if (InvokeRequired)
    {
        //Won't compile
        BeginInvoke(delegate(object sender, ProgressChangedEventArgs e) 
        { bgWorker_ProgressChanged(sender, e); });
    }

    progressBar1.Increment(e.ProgressPercentage);
}
Run Code Online (Sandbox Code Playgroud)

它告诉我'无法从'匿名方法'转换为'System.Delegate',而当我将匿名方法转换为委托时,它确实有效吗?

BeginInvoke((progressDelegate)delegate { bgWorker_ProgressChanged(sender, e); });
Run Code Online (Sandbox Code Playgroud)

.net c# delegates anonymous-methods .net-2.0

14
推荐指数
3
解决办法
1万
查看次数

标签 统计

c# ×2

.net ×1

.net-2.0 ×1

anonymous-methods ×1

delegates ×1