Penjelasan Sederhana Fields C# di Asp.net


Field adalah variabel dari tipe data apa pun yang dideklarasikan secara langsung di class atau struct. Field adalah member dari tipe data yang mereka miliki.

Class atau struct mungkin memiliki field instance atau field statis atau keduanya. Field contoh khusus untuk instance dari sebuah tipe data. Jika kita memiliki class T, dengan field instance F, kita dapat membuat dua objek tipe T, dan memodifikasi nilai F di setiap objek tanpa mempengaruhi nilai pada objek lainnya.

Sebaliknya field statis termasuk dalam class itu sendiri, dan dibagi di antara semua contoh class itu. Perubahan yang dilakukan dari instance A akan segera terlihat pada instance B dan C jika mereka mengakses field Umumnya, kita harus menggunakan field hanya untuk variabel yang memiliki aksesibilitas private atau protected.
Data yang di exposes class kita ke Code klien harus diberikan melalui metod, properti, dan pengindeks.

Dengan menggunakan constructor ini untuk akses tidak langsung ke field internal, kita dapat menjaga terhadap nilai masukan yang tidak benar.
Field private yang menyimpan data yang ecposed oleh properti publik disebut backing store atau backing field.

Field biasanya menyimpan data yang harus dapat diakses lebih dari satu metod class dan harus disimpan lebih lama dari pada lifetime dari satu metod tunggal.
Misalnya, class yang mewakili tanggal kalender mungkin memiliki tiga field bilangan bulat: satu untuk month, satu untuk day, dan satu untuk year.

Variabel yang tidak digunakan di luar scope metod tunggal harus dinyatakan sebagai variabel lokal dalam metod body itu sendiri. Field dideklarasikan di blok class dengan menentukan tingkat akses field, diikuti oleh jenis field, diikuti dengan nama field. Sebagai contoh:
public class CalendarEntry
{
    // private field
    private DateTime date;

    // public field (Generally not recommended.)
    public string day;

    // Public property exposes date field safely.
    public DateTime Date 
    {
        get 
        {
            return date;
        }
        set 
        {
            // Set some reasonable boundaries for likely birth dates.
            if (value.Year > 1900 && value.Year <= DateTime.Today.Year)
            {
                date = value;
            }
            else
                throw new ArgumentOutOfRangeException();
        }

    }

    // Public method also exposes date field safely.
    // Example call: birthday.SetDate("1975, 6, 30");
    public void SetDate(string dateString)
    {
        DateTime dt = Convert.ToDateTime(dateString);

        // Set some reasonable boundaries for likely birth dates.
        if (dt.Year > 1900 && dt.Year <= DateTime.Today.Year)
        {
            date = dt;
        }
        else
            throw new ArgumentOutOfRangeException();
    }

    public TimeSpan GetTimeSpan(string dateString)
    {
        DateTime dt = Convert.ToDateTime(dateString);

        if (dt != null && dt.Ticks < date.Ticks)
        {
            return date - dt;
        }
        else
            throw new ArgumentOutOfRangeException();  

    }
}
Untuk mengakses field pada sebuah objek, tambahkan sebuah periode setelah nama objek, diikuti dengan nama field, seperti pada objectname.fieldname. Sebagai contoh:

CalendarEntry birthday = new CalendarEntry();
birthday.day = "Saturday";
Field dapat diberi value awal dengan menggunakan operator assignment saat field dideclared. Untuk menetapkan field hari ke "Monday" secara otomatis, misalnya, kita akan mendeklarasikan hari seperti pada contoh berikut:

public class CalendarDateWithInitialization
{
    public string day = "Monday";
    //...
}
Fields dapat ditandai sebagai public, private, protected, internal, protected internal atau private protected.

akses modifier ini menentukan bagaimana pengguna class dapat mengakses kolom. Field secara opsional dapat dinyatakan statis. Hal ini membuat field tersedia bagi pemanggil setiap saat, bahkan jika tidak ada instance dari class yang ada.

Field dapat dideklarasikan readonly. Field read-only hanya dapat diberi nilai selama inisialisasi atau constructor.

Field static``readonly sangat mirip dengan konstanta, kecuali bahwa compiler C # tidak memiliki akses ke nilai field read-only statis pada waktu kompilasi, hanya pada run time.
Previous
Next Post »