Manufaktur industri
Industri Internet of Things | bahan industri | Pemeliharaan dan Perbaikan Peralatan | Pemrograman industri |
home  MfgRobots >> Manufaktur industri >  >> Industrial programming >> Bahasa C

C# struktur

struktur C#

Dalam tutorial ini, Anda akan belajar tentang struct dalam C# dengan bantuan contoh.

Struktur (struktur) seperti kelas dalam C# yang digunakan untuk menyimpan data. Namun, tidak seperti kelas, struct adalah tipe nilai.

Misalkan kita ingin menyimpan nama dan umur seseorang. Kita dapat membuat dua variabel:name dan usia dan menyimpan nilai.

Namun, misalkan kita ingin menyimpan informasi yang sama dari banyak orang.

Dalam hal ini, membuat variabel untuk satu orang mungkin merupakan tugas yang membosankan. Untuk mengatasinya kita bisa membuat struct yang menyimpan name dan usia . Sekarang, struct ini bisa digunakan untuk semua orang.


Mendefinisikan struct di C#

Dalam C#, kami menggunakan struct kata kunci untuk mendefinisikan sebuah struct. Misalnya,

struct Employee  {
  public int id;
}

Di sini, id adalah bidang di dalam struct. Sebuah struct juga dapat menyertakan metode, pengindeks, dll.


Deklarasikan variabel struct

Sebelum kita menggunakan struct, pertama-tama kita perlu membuat variabel struct. Kami menggunakan nama struct dengan variabel untuk mendeklarasikan variabel struct. Misalnya,

struct Employee {
  public int id;
}
...

// declare emp of struct Employee
Employee emp;

Pada contoh di atas, kita telah membuat sebuah struct bernama Karyawan . Di sini, kami telah mendeklarasikan variabel emp dari struct Karyawan .


Akses struct C#

Kami menggunakan variabel struct bersama dengan . operator untuk mengakses anggota suatu struct. Misalnya,

struct Employee {
  public int id;
}
... 
// declare emp of struct Employee
Employee emp;

// access member of struct      
emp.id = 1;

Di sini, kami telah menggunakan variabel emp dari sebuah struct Karyawan dengan . operator untuk mengakses anggota Karyawan .

emp.id = 1;

Ini mengakses id bidang struct Karyawan .

Catatan :Tipe data primitif seperti int , bool , float adalah struct yang telah ditentukan sebelumnya dalam C#.


Contoh:Struktur C#

using System;
namespace CsharpStruct {
 
  // defining struct
  struct Employee {
    public int id;

    public void getId(int id) {
      Console.WriteLine("Employee Id: " + id);
    }
  }
 
  class Program {
    static void Main(string[] args) {
 
      // declare emp of struct Employee
      Employee emp;
      
      // accesses and sets struct field
      emp.id = 1;

      // accesses struct methods
      emp.getId(emp.id);

      Console.ReadLine();
    }
  }
}

Keluaran

Employee Id: 1

Pada program di atas, kita telah membuat sebuah struct bernama Karyawan . Ini berisi bidang id dan metode getId() .

Di dalam Program kelas, kami telah mendeklarasikan variabel emp dari struct Karyawan . Kami kemudian menggunakan emp variabel untuk mengakses bidang dan metode kelas.

Catatan :Kami juga dapat membuat instance struct menggunakan new kata kunci. Misalnya,

Employee emp = new Employee();

Di sini, baris ini memanggil konstruktor tanpa parameter dari struct dan menginisialisasi semua anggota dengan nilai default.


Konstruktor di C# struct

Dalam C#, sebuah struct juga dapat menyertakan konstruktor. Misalnya,

struct Employee {

  public int id;

  // constructor 
  public Employee(int employeeId) {
   id = employeeId
  }
}

Di sini, kami telah membuat konstruktor berparameter Employee() dengan parameter employeeId .

Catatan :Kami tidak dapat membuat konstruktor tanpa parameter di C# versi 9.0 atau lebih rendah.


Contoh:Konstruktor di C# struct

using System;
namespace CsharpStruct {
 
  // defining struct
  struct Employee {
    public int id;
    
    public string name;

    // parameterized constructor
    public Employee(int employeeId, string employeeName) {
   
      id = employeeId;
      name = employeeName;
    }
  }
 
  class Program {
    static void Main(string[] args) {
 
      // calls constructor of struct
      Employee emp = new Employee(1, "Brian");

      Console.WriteLine("Employee Name: " + emp.name);
      Console.WriteLine("Employee Id: " + emp.id);

      Console.ReadLine();
    }
  }
}

Keluaran

Employee Name: Brian
Employee Id: 1

Pada contoh di atas, kita telah membuat konstruktor berparameter di dalam Karyawan struktur. Di dalam konstruktor, kami telah menetapkan nilai bidang:id dan nama .

Perhatikan barisnya,

Employee emp = new Employee(1, "Brian");

Seperti di kelas C#, kita menggunakan new kata kunci untuk memanggil konstruktor. Di sini, 1 dan "Brian" adalah argumen yang diteruskan ke konstruktor, di mana mereka ditugaskan ke parameter employeeID dan namakaryawan masing-masing."

Catatan :Kita harus menetapkan nilai untuk setiap bidang struct di dalam konstruktor berparameter. Misalnya,

// error code
public Employee(int employeeID, employeeName) {
  id = employeeID;
}

Di sini, kami belum menetapkan nilai untuk name bidang. Jadi kode tersebut akan menghasilkan kesalahan.


Properti di C# struct

Kita juga dapat menggunakan properti di dalam struct C#. Misalnya,

using System;
namespace CsharpStruct {
 
  // defining struct
  struct Employee {
    public int id;
    
    // creates property
    public int Id {

      // returns id field
      get {
        return id;
      }

      // sets id field
      set {
        id = value;
      }
    }
  }
 
  class Program {
    static void Main(string[] args) {
 
      // calls the constructor of struct
      Employee emp = new Employee();

      emp.Id = 1;
      Console.WriteLine("Employee Id: " + emp.Id);

      Console.ReadLine();

    }
  }
}

Keluaran

Employee Id: 1

Dalam contoh di atas, kita memiliki Id properti di dalam Karyawan struktur.

dapatkan metode mengembalikan id bidang dan set metode memberikan nilai ke id lapangan.


Perbedaan antara class dan struct dalam C#

Di kelas C# dan struct terlihat serupa. Namun, ada beberapa perbedaan di antara mereka.

Kelas adalah tipe referensi sedangkan struct adalah tipe nilai. Misalnya,

using System;
namespace CsharpStruct {
 
  // defining class
  class Employee {
    public string name;

  }
 
  class Program {
    static void Main(string[] args) {

      Employee emp1 = new Employee();
      emp1.name = "John";

      // assign emp1 to emp2
      Employee emp2 = emp1;
      emp2.name = "Ed";
      Console.WriteLine("Employee1 name: " + emp1.name);

      Console.ReadLine();
    }
  }
}

Keluaran

Employee1 name: Ed

Dalam contoh di atas, kami telah menetapkan nilai emp1 ke emp2 . emp2 objek merujuk ke objek yang sama dengan emp1 . Jadi, pembaruan di emp2 memperbarui nilai emp1 secara otomatis.

Inilah sebabnya mengapa kelas adalah tipe referensi .

Berlawanan dengan kelas, ketika kita menetapkan satu variabel struct ke yang lain, nilai struct akan disalin ke variabel yang ditugaskan. Jadi memperbarui satu variabel struct tidak memengaruhi yang lain. Misalnya,

using System;
namespace CsharpStruct {
 
  // defining struct
  struct Employee {
    public string name;

  }
 
  class Program {
    static void Main(string[] args) {

      Employee emp1 = new Employee();
      emp1.name = "John";

      // assign emp1 to emp2
      Employee emp2 = emp1;
      emp2.name = "Ed";
      Console.WriteLine("Employee1 name: " + emp1.name);
      
      Console.ReadLine();
    }
  }
}

Keluaran

Employee1 name: John

Saat kita menetapkan nilai emp1 ke emp2 , nilai baru emp2 dibuat. Di sini, nilai emp1 disalin ke emp2 . Jadi, ubah emp2 tidak mempengaruhi emp1 .

Inilah sebabnya mengapa struct adalah tipe nilai .

Selain itu, pewarisan tidak dimungkinkan dalam struct padahal itu adalah fitur penting dari kelas C#.


Bahasa C

  1. struktur C
  2. C struct dan Pointer
  3. C Struktur dan Fungsi
  4. Cara menghindari kekalahan dalam “pekerjaan masa depan” yang kompetitif
  5. Struktur C++ Dengan Contoh
  6. Mengapa Saatnya Meningkatkan Penjadwalan Karyawan
  7. Untuk Mengurangi Risiko, Pertimbangkan Pemeriksaan Ulang Latar Belakang Karyawan
  8. Empat Cara untuk Memperkuat Keterlibatan Karyawan di Tengah COVID-19
  9. DVIRC Menyambut Karyawan Baru, Mempromosikan Karyawan yang Berharga
  10. Kategori Teknologi Baru yang Menyenangkan:Analisis Produktivitas Karyawan