为什么在处理Task时使用私有静态方法

本文关键字:静态方法 处理 Task 为什么 | 更新日期: 2023-09-27 17:51:06

这段代码摘自另一个网站:

using System;
using System.Threading.Tasks;
public class Program {
    private static Int32 Sum(Int32 n)
    {
        Int32 sum = 0;
        for (; n > 0; n--)
        checked { sum += n; } 
        return sum;
    }
    public static void Main() {
        Task<int32> t = new Task<int32>(n => Sum((Int32)n), 1000);
        t.Start();
        t.Wait(); 
        // Get the result (the Result property internally calls Wait) 
        Console.WriteLine("The sum is: " + t.Result);   // An Int32 value
    }
}

我不明白为什么使用私有静态方法而不是其他普通的公共方法。

谢谢

为什么在处理Task时使用私有静态方法

该方法是静态的,因为它是从静态上下文中使用的,所以它不能是非静态的。

方法可能是私有的,因为没有理由将其设为公共。

这是因为你的主要方法是static,你不能从static方法中调用非静态方法,而不使用该类的对象,因为非静态方法是用object调用的。

如果使Sum方法非静态,则必须在程序类的对象上调用它

private Int32 Sum(Int32 n)
{
      //your code
}

呼叫将更改为

Task<Int32> t = new Task<Int32>(n => new Program().Sum((Int32)n), 1000);