Чтобы ответить на ваш второй вопрос, его, вероятно, следует записать как
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, вам нужно будет только один раз выполнить вычисления.