Saya telah menemukan beberapa contoh kode C # seperti berikut:
public static int Foo(this MyClass arg)
Saya belum dapat menemukan penjelasan tentang arti this
kata kunci dalam kasus ini. Ada wawasan?
c#
parameters
this
kpozin
sumber
sumber
Jawaban:
Ini adalah metode ekstensi . Lihat di sini untuk penjelasan .
itu berarti Anda dapat menelepon
daripada
Hal ini memungkinkan pembangunan antarmuka yang lancar seperti yang dinyatakan di bawah ini.
sumber
Posting blog yang dikutip oleh Scott Gu menjelaskannya dengan baik.
Bagi saya, jawaban atas pertanyaan tersebut adalah dalam pernyataan berikut di pos itu:
sumber
this
kata kunci dalam metode tanda tangan. Jawaban lain hanya mengatakan, "ini metode ekstensi." Saya tidak pernah sepenuhnya memahami bagaimana metode ekstensi "melampirkan" pada jenis yang mereka kembangkan sampai membaca jawaban ini. Terima kasih!Selain penjelasan Preha Sangha:
Intellisense menampilkan metode ekstensi dengan panah biru (misalnya di depan "Agregat <>"):
Anda membutuhkan
untuk metode ekstensi muncul dan tersedia, jika mereka berada dalam namespace yang berbeda dari kode yang menggunakannya.
sumber
Mereka adalah metode ekstensi . Selamat datang di dunia fasih baru . :)
sumber
Saya baru belajar ini sendiri beberapa hari yang lalu: kata kunci ini mendefinisikan bahwa metode telah menjadi perpanjangan dari kelas yang menghasilkannya. Jadi untuk contoh Anda, MyClass akan memiliki metode ekstensi baru yang disebut Foo (yang tidak menerima parameter apa pun dan mengembalikan int; dapat digunakan seperti metode publik lainnya).
sumber
"Ini" memperluas kelas berikutnya dalam daftar parameter
Jadi dalam metode tanda tangan di bawah "this" extends "String". Baris dilewatkan ke fungsi sebagai argumen normal ke metode. public static string [] SplitCsvLine (baris string ini)
Dalam contoh di atas, kelas "this" memperluas kelas "String" bawaan.
sumber