Penjelasan Singkat Properties C# Asp.Net


Properties adalah member yang menyediakan mekanisme fleksibel untuk membaca, menulis, atau menghitung nilai private field.

Properti dapat digunakan seolah-olah properties adalah member data publik, namun sebenarnya adalah metod special yang disebut accessors. Ini memungkinkan data diakses dengan mudah dan tetap membantu meningkatkan keamanan dan fleksibilitas metod.

Properti memungkinkan class untuk mengekspos public dan menetapkan nilai, sambil menyembunyikan kode implementasi atau verifikasi.

Mendapatkan accessor properti digunakan untuk mengembalikan nilai properti, dan accessor properti yang ditetapkan digunakan untuk menetapkan nilai baru.

Accessors ini dapat memiliki tingkat akses yang berbeda. keyword value digunakan untuk menentukan nilai yang ditetapkan oleh accessor yang diset.

Properti dapat read-write (keduanya memiliki akses dan satu set accessor), hanya bisa dibaca (mereka mendapat aksesor tapi tidak memiliki aksesor yang diset), atau hanya write(propertis memiliki accessor yang diset, namun tidak mendapatkan aksesor).

Properti penulisan hanya jarang dan paling public digunakan untuk membatasi akses ke data sensitif. Properti sederhana yang tidak memerlukan code akses custom dapat diimplementasikan  baik sebagai definisi badan ekspresi atau sebagai properti yang diimplementasikan secara otomatis.

  • Properties with backing fields

Salah satu pola dasar untuk menerapkan properti melibatkan penggunaan field backing private untuk menetapkan dan mengambil nilai properti. Mendapatkan aksesor mengembalikan nilai field private, dan atur accessor dapat melakukan beberapa validasi data sebelum memberikan nilai ke field private.

Kedua pengakses juga dapat melakukan beberapa konversi atau perhitungan pada data sebelum disimpan atau dikembalikan. Contoh berikut menggambarkan pola ini. Dalam contoh ini, class TimePeriod mewakili interval dari time.

Secara internal, class menyimpan interval waktu dalam hitungan detik di field private bernama seconds. Properti read-wirte bernama Hours memungkinkan user menentukan interval waktu berjam-jam.

Baik get dan set accessors melakukan konversi yang diperlukan antara hours dan second. Selain itu, accessor yang ditetapkan memvalidasi data dan mempassing ArgumentOutOfRangeException jika jumlah hours tidak valid.
using System;

class TimePeriod
{
   private double seconds;

   public double Hours
   {
       get { return seconds / 3600; }
       set { 
          if (value < 0 || value > 24)
             throw new ArgumentOutOfRangeException(
                   $"{nameof(value)} must be between 0 and 24.");

          seconds = value * 3600; 
       }
   }
}

class Program
{
   static void Main()
   {
       TimePeriod t = new TimePeriod();
       // The property assignment causes the 'set' accessor to be called.
       t.Hours = 24;

       // Retrieving the property causes the 'get' accessor to be called.
       Console.WriteLine($"Time in hours: {t.Hours}");
   }
}
// The example displays the following output:
//    Time in hours: 24
Previous
Next Post »