Apa artinya ketika Anda menambahkan kata kunci statis ke suatu metode?
public static void doSomething(){
//Well, do something!
}
Bisakah Anda menambahkan static
kata kunci ke kelas? Apa artinya itu?
Apa artinya ketika Anda menambahkan kata kunci statis ke suatu metode?
public static void doSomething(){
//Well, do something!
}
Bisakah Anda menambahkan static
kata kunci ke kelas? Apa artinya itu?
Jawaban:
Sebuah static
fungsi, tidak seperti biasa ( misalnya ) fungsi, tidak terkait dengan sebuah instance dari kelas.
Sebuah static
kelas adalah kelas yang hanya dapat berisi static
anggota, dan karena itu tidak dapat dipakai.
Sebagai contoh:
class SomeClass {
public int InstanceMethod() { return 1; }
public static int StaticMethod() { return 42; }
}
Untuk dapat menelepon InstanceMethod
, Anda memerlukan instance kelas:
SomeClass instance = new SomeClass();
instance.InstanceMethod(); //Fine
instance.StaticMethod(); //Won't compile
SomeClass.InstanceMethod(); //Won't compile
SomeClass.StaticMethod(); //Fine
Dari sudut pandang lain: Pertimbangkan bahwa Anda ingin membuat beberapa perubahan pada satu String. misalnya Anda ingin membuat huruf besar dan sebagainya. Anda membuat kelas lain bernama "Alat" untuk tindakan ini. tidak ada arti membuat turunan dari kelas "Alat" karena tidak ada jenis entitas apa pun yang tersedia di dalam kelas itu (dibandingkan dengan kelas "Orang" atau "Guru"). Jadi kami menggunakan kata kunci statis untuk menggunakan kelas "Alat" tanpa membuat instance dari itu, dan ketika Anda menekan titik setelah nama kelas ("Alat") Anda dapat memiliki akses ke metode yang Anda inginkan.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine(Tools.ToUpperCase("Behnoud Sherafati"));
Console.ReadKey();
}
}
public static class Tools
{
public static string ToUpperCase(string str)
{
return str.ToUpper();
}
}
}
Metode statis, bidang, properti, atau peristiwa dapat dipanggil pada kelas bahkan ketika tidak ada instance kelas telah dibuat. Jika instance kelas dibuat, mereka tidak dapat digunakan untuk mengakses anggota statis. Hanya satu salinan bidang dan peristiwa statis yang ada, dan metode dan properti statis hanya dapat mengakses bidang statis dan peristiwa statis. Anggota statis sering digunakan untuk mewakili data atau perhitungan yang tidak berubah sebagai respons terhadap keadaan objek; misalnya, perpustakaan matematika mungkin berisi metode statis untuk menghitung sinus dan cosinus. Anggota kelas statis dinyatakan menggunakan kata kunci statis sebelum jenis kembalinya
Segera Anda tidak dapat membuat instance kelas statis: Mis:
static class myStaticClass
{
public static void someFunction()
{ /* */ }
}
Anda tidak bisa membuat seperti ini:
myStaticClass msc = new myStaticClass(); // it will cause an error
Anda hanya dapat membuat:
myStaticClass.someFunction();
Kata kunci statis, ketika diterapkan pada suatu kelas, memberi tahu kompiler untuk membuat turunan tunggal dari kelas itu. Maka tidak mungkin untuk 'baru' satu contoh atau lebih dari kelas. Semua metode dalam kelas statis sendiri harus dinyatakan statis.
Adalah mungkin, Dan sering diinginkan, untuk memiliki metode statis dari kelas non-statis. Misalnya metode pabrik ketika membuat turunan dari kelas lain sering dinyatakan statis karena ini berarti bahwa instance tertentu dari kelas yang mengandung metode faktor tidak diperlukan.
Untuk penjelasan yang baik tentang bagaimana, kapan dan di mana lihat MSDN
static
kelas tidak memiliki contoh sama sekali.