senin sınıfında sen fonksiyonların iki tür Program
:
- statik işlevleri:
Main()
- örneği fonksiyonları:
AverageThree()
Ve Main()
uygulamanızın giriş noktasıdır. Ve statik olmalı.
Statik bir işlevden yalnızca statik içeriğe erişebilirsiniz. Daha sonra, bir çözüm AverageThree()
'u statik (ikinci çözüm) olarak dönüştürmektir. Diğer bir çözüm, Program
örneğini oluşturmak ve AverageThree()
işlevini çağırmaktır.
Sen sınıf Programı bir örneğini oluşturabilir
:
namespace Test
{
class Program
{
public double AverageThree(double one, double two, double three)
{
return (one * two * three)/3;
}
static void Main(string[] args)
{
Program p = new Program();
Console.WriteLine(p.AverageThree(3.7, 56, 998.321));
}
}
}
Yoksa statik yöntemini AverageThree
dönüştürebilirsiniz: Bana neden hiç sakıncası yoksa
namespace Test
{
class Program
{
public static double AverageThree(double one, double two, double three)
{
return (one * two * three)/3;
}
static void Main(string[] args)
{
Console.WriteLine(AverageThree(3.7, 56, 998.321));
}
}
}
, Açıklayabileceğini Genel sınıf, bir örnek oluşturmadan sınıfında kullanılamaz mı? Derleyici neden aynı sınıfta olduğunu fark etmedi? veya görünürlük, bir yöntemin tüm program boyunca kullanılma şeklini değiştiriyor mu? – Jeremy
Statik olmayan yöntemler, onları çağırmak için sınıfın bir örneğini gerektirir. Statik yöntemler, kendi sınıflarında bile statik yöntemleri yalnızca arayabilirler. Bazı ayrıntıları [burada] (https://msdn.microsoft.com/en-us/library/s35hcfh7.aspx) başlangıç noktası olarak bulabilirsiniz. – AGB