C # - Properti

Propertiesdiberi nama anggota kelas, struktur, dan antarmuka. Variabel anggota atau metode dalam kelas atau struktur disebutFields. Properti adalah perpanjangan dari bidang dan diakses menggunakan sintaks yang sama. Mereka menggunakanaccessors melalui mana nilai-nilai bidang privat dapat dibaca, ditulis atau dimanipulasi.

Properti tidak memberi nama lokasi penyimpanan. Sebaliknya, mereka punyaaccessors yang membaca, menulis, atau menghitung nilainya.

Sebagai contoh, mari kita memiliki kelas bernama Mahasiswa, dengan bidang privat untuk usia, nama, dan kode. Kita tidak bisa langsung mengakses field ini dari luar ruang lingkup kelas, tapi kita bisa memiliki properti untuk mengakses field privat ini.

Accessors

Itu accessorproperti berisi pernyataan yang dapat dieksekusi yang membantu dalam mendapatkan (membaca atau menghitung) atau menetapkan (menulis) properti. Deklarasi pengakses bisa berisi get accessor, set accessor, atau keduanya. Misalnya -

// Declare a Code property of type string:
public string Code {
   get {
      return code;
   }
   set {
      code = value;
   }
}

// Declare a Name property of type string:
public string Name {
   get {
      return name;
   }
   set {
      name = value;
   }
}

// Declare a Age property of type int:
public int Age { 
   get {
      return age;
   }
   set {
      age = value;
   }
}

Contoh

Contoh berikut menunjukkan penggunaan properti -

using System;
namespace tutorialspoint {
   class Student {
      private string code = "N.A";
      private string name = "not known";
      private int age = 0;
      
      // Declare a Code property of type string:
      public string Code {
         get {
            return code;
         }
         set {
            code = value;
         }
      }
      
      // Declare a Name property of type string:
      public string Name {
         get {
            return name;
         }
         set {
            name = value;
         }
      }
      
      // Declare a Age property of type int:
      public int Age {
         get {
            return age;
         }
         set {
            age = value;
         }
      }
      public override string ToString() {
         return "Code = " + Code +", Name = " + Name + ", Age = " + Age;
      }
   }
   
   class ExampleDemo {
      public static void Main() {
      
         // Create a new Student object:
         Student s = new Student();
         
         // Setting code, name and the age of the student
         s.Code = "001";
         s.Name = "Zara";
         s.Age = 9;
         Console.WriteLine("Student Info: {0}", s);
         
         //let us increase age
         s.Age += 1;
         Console.WriteLine("Student Info: {0}", s);
         Console.ReadKey();
      }
   }
}

Ketika kode di atas dikompilasi dan dijalankan, itu menghasilkan hasil sebagai berikut -

Student Info: Code = 001, Name = Zara, Age = 9
Student Info: Code = 001, Name = Zara, Age = 10

Properti Abstrak

Kelas abstrak mungkin memiliki properti abstrak, yang harus diimplementasikan di kelas turunan. Program berikut menggambarkan hal ini -

using System;

namespace tutorialspoint {
   public abstract class Person {
      public abstract string Name {
         get;
         set;
      }
      public abstract int Age {
         get;
         set;
      }
   }
   class Student : Person {
      private string code = "N.A";
      private string name = "N.A";
      private int age = 0;
      
      // Declare a Code property of type string:
      public string Code {
         get {
            return code;
         }
         set {
            code = value;
         }
      }
      
      // Declare a Name property of type string:
      public override string Name {
         get {
            return name;
         }
         set {
            name = value;
         }
      }
      
      // Declare a Age property of type int:
      public override int Age {
         get {
            return age;
         }
         set {
            age = value;
         }
      }
      public override string ToString() {
         return "Code = " + Code +", Name = " + Name + ", Age = " + Age;
      }
   }
   
   class ExampleDemo {
      public static void Main() {
         // Create a new Student object:
         Student s = new Student();
         
         // Setting code, name and the age of the student
         s.Code = "001";
         s.Name = "Zara";
         s.Age = 9;
         Console.WriteLine("Student Info:- {0}", s);
         
         //let us increase age
         s.Age += 1;
         Console.WriteLine("Student Info:- {0}", s);
         Console.ReadKey();
      }
   }
}

Ketika kode di atas dikompilasi dan dijalankan, itu menghasilkan hasil sebagai berikut -

Student Info: Code = 001, Name = Zara, Age = 9
Student Info: Code = 001, Name = Zara, Age = 10