Kelas Statik dalam C#

王林
Lepaskan: 2024-09-03 15:32:30
asal
1191 orang telah melayarinya

Kelas statik ialah kelas yang tidak boleh kita nyatakan. Satu-satunya dan yang paling penting objektif kelas statik adalah untuk memberikan cetak biru kelas yang diwarisi. Ia dicipta dengan bantuan kata kunci "statik" dalam C#. Kelas statik mengandungi ahli statik sahaja. Kami tidak boleh mencipta objek untuk kelas statik. Dalam topik ini, kita akan belajar tentang Kelas Statik dalam C#.

Ahli Statik

Kelas statik dalam C# terdiri daripada dua jenis statik yang digambarkan di bawah:

1. Ahli Data Statik

Ahli data statik diisytiharkan oleh penggunaan kata kunci statik kerana kelas statik sentiasa mengandungi ahli data statik. Mereka juga diakses secara terus dengan menggunakan nama kelas. Memori ahli data statik diperuntukkan secara individu tanpa mengira hubungannya dengan objek.

Sintaks:

static class NameOfClass
{
public static name_of_datamember;
}
Salin selepas log masuk

Contoh :

public class Vehicle
{
public static int Wheels = 4;
public static int GasTank
{
get
{
return 23;
}
}
public static void move() { }
public static event EventType RunOutOfGas;
// Extra non-static fields as well as properties
}
Salin selepas log masuk

Mereka dimulakan sebelum ahli statik diakses buat kali pertama dan sebelum pembina statik jika seseorang dipanggil. Untuk mengaksesnya, kami menggunakan nama kelas dan bukannya nama pembolehubah.

2. Kaedah Statik

Penggunaan kata kunci statik mengisytiharkan kaedah statik kerana kelas statik sentiasa mengandungi kaedah statik. Kaedah ini hanya boleh mengakses ahli data statik dan tidak boleh mengakses ahli data bukan statik.

Sintaks:

static class name_of_class
{
public static name_of_method()
{
// code
}
}
Salin selepas log masuk

Contoh Kelas Statik dalam C#

Berikut ialah contoh berikut yang disebut di bawah

Contoh #1

Kod:

/*
* C# Program to Check whether the Entered Number is Even or Odd
*/
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace check1
{
class EvenAndOdd
{
static void Main(string[] args)
{
int i;
if (4 % 2 == 0) // You can enter any number you wish to check for even / odd
{
Console.Write("Entered Number is an Even Number");
Console.Read();
}
else
{
Console.Write("Entered Number is an Odd Number");
Console.Read();
}
}
}
}
Salin selepas log masuk

Output:

Kelas Statik dalam C#

Contoh #2

Kod:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
public static class ABC {
// declaration of static Method
static void details()
{
Console.Write("Static Method of the class ABC is");
}
}
// Inheritance of the class ABC which would give an error since static
// class cannot be inherited
class ABC2 : ABC
{
public static void Main(String[] args)
{
}
}
Salin selepas log masuk

Output :

Kelas Statik dalam C#

Penjelasan: Dalam contoh pertama, terdapat kelas statik bernama Buku dengan menggunakan kata kunci statik. Buku kelas terdiri daripada ahli data statik iaitu nama, l dan t, dan juga kaedah statik bernama specs(). Kaedah kelas statik ini dipanggil dengan menggunakan nama kelas, iaitu, Buku. spesifikasi();. Memandangkan kita sudah sedia maklum bahawa kelas statik tidak terdiri daripada objek, jadi ahli data kelas Buku diakses dengan menggunakan nama kelasnya, iaitu, Book.name, Book. l dan Book.t.

Pembina Statik

Pembina statik pada asasnya berguna dalam pemulaan ahli data statik, berbanding dengan pembina biasa, iaitu pembina bukan statik yang berguna dalam pemulaan ahli data bukan statik.

Ciri/Peraturan:

  1. Mereka tidak boleh mempunyai mana-mana pengubah suai akses.
  2. Ia tidak boleh ditakrifkan bersama dengan hujah.
  3. Mereka tidak mempunyai akses kepada ahli data bukan statik.

Peruntukan Memori untuk Item Statik

Anda mesti mengetahui bahawa komponen asas memori aplikasi adalah timbunan dan timbunan. Kawasan khas di dalam timbunan dipanggil Timbunan Frekuensi Tinggi di mana ahli statik disimpan. Ahli statik yang terdiri daripada kelas bukan statik juga disimpan dalam timbunan, dan kemudian mereka dikongsi merentas semua tika kelas. Oleh itu perubahan yang dilakukan oleh satu kejadian dapat dilihat dalam semua kejadian lain.

Seperti yang anda mesti sedia maklum, ahli statik hanya boleh mengandungi ahli statik yang lain memandangkan ahli statik dipanggil tanpa mengira penciptaan tika. Selepas itu, mereka tidak boleh mengakses ahli bukan statik.

Kelebihan Kelas Statik dalam C#

  1. Kami akan mendapat ralat sekiranya anda, kami mana-mana ahli sebagai ahli bukan statik.
  2. Sekali lagi ralat masa kompilasi dijana sekiranya kami cuba mencipta contoh kepada kelas statik kerana ahli statik boleh diakses terus bersama-sama dengan nama kelas mereka.
  3. Kata kunci statik digunakan sebelum kata kunci kelas dalam definisi kelas untuk mengisytiharkan kelas statik.
  4. Ahli kelas statik boleh diakses dengan nama kelas yang diikuti dengan nama ahli.

Kesimpulan

  • Kami tidak boleh membuat instantiate kelas statik menggunakan kata kunci baharu
  • Item statik hanya mempunyai keupayaan untuk mengakses item statik lain. Pertimbangkan bahawa kelas statik hanya mengandungi ahli statik seperti pembolehubah, kaedah, dsb.
  • Kaedah statik hanya mengandungi pembolehubah statik, dan ia juga hanya boleh mengakses item statik yang lain.
  • Item statik mempunyai keupayaan untuk berkongsi sumber antara berbilang pengguna.
  • Kami tidak boleh menggunakan statik bersama-sama dengan pengindeks, pemusnah atau jenis yang selain daripada kelas.
  • Selain itu, pembina statik dalam kelas bukan statik akan dijalankan hanya sekali apabila kelas itu dibuat seketika untuk kali pertama.
  • Selain itu, pembina statik yang terdapat dalam kelas statik akan dijalankan hanya sekali apabila mana-mana ahli statik diakses buat kali pertama.
  • Ahli statik diperuntukkan dalam kawasan timbunan frekuensi tinggi memori.

Atas ialah kandungan terperinci Kelas Statik dalam C#. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan