从多个源调用静态方法时

时间:2017-06-22 11:32:14

标签: java c# .net

假设我在类中有一个带参数的静态方法,如下所示:

 public static string NumberToLetter(int num)
{
    string colCharset = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
    string Letter = String.Empty;
    //goes into loop using the parameter
    //does some logic
    return Letter;
}

现在,当同时从其他类调用此静态方法时会发生什么?

或者以这种方式,当第一个类调用此方法并开始执行时,另一个类在执行第一个类请求时调用此静态方法?

行为是什么?循环中的参数值会发生什么?

2 个答案:

答案 0 :(得分:3)

此静态方法中的变量是本地的,因此将为每个调用创建它们。对于n次调用,您将拥有n个这些变量的副本。您的参数不是引用类型,因此您的参数也不会被共享。

除非您在方法中共享变量/ property / field,否则多次调用都是线程安全的,如果这是您的意思。

答案 1 :(得分:2)

您的函数是静态的,您的局部变量不是。如果没有对外部静态资源的依赖,那么它应该可以正常工作。

如果您要传入引用参数或可变对象,那么问题会完全不同。