sealed class PI
{
public static float number;
static PI()
{ number = 3.141592653F; }
static public float val()
{ return number; }
}
public static和static public有什么区别?它们可以以任何顺序使用吗?
我该如何使用
static public float val()
?它会在类初始化时立即执行吗?
sealed class PI
{
public static float number;
static PI()
{ number = 3.141592653F; }
static public float val()
{ return number; }
}
public static和static public有什么区别?它们可以以任何顺序使用吗?
我该如何使用static public float val()
?
它会在类初始化时立即执行吗?
没有区别。您可以在任何顺序中指定它们。
但是,我发现大多数开发人员倾向于使用:
public static
并且不是static public。
关于修饰符的顺序
修饰符可以以任何顺序使用,只是在使用时需要注意风格。我通常先使用可见性修饰符,而且大多数代码也是如此。
关于第二个问题:
static public float val()
PI.val()
来调用它。你不需要一个类的实例来调用它,但是要直接在类上调用。静态函数不会接收到this
引用,也不能是虚函数,就像非OOP语言中的一个函数一样,只不过是使用类作为命名空间。嗯,这就像是一个人的名字 =) 把Tom叫做Mike或者把Mike叫做Tom,没有任何区别。
没有区别。它们相对于彼此的顺序并不重要。
public static class Pi
{
private static float pi = 0;
public static float GetValue()
{
if (pi == 0)
pi = 3.141592653F; // Expensive pi calculation goes here.
return pi;
}
}
并这样称呼它:
float myPi = Pi.GetValue();
关于第二个问题:该方法无需类的实例即可使用,可以这样调用:
PI.val();