RSS

nice info computer,hacking,business, viruss,n many more

Rave's Blog

C # TUTORIAL

Pelajaran 5: Metode
Dalam pelajaran sebelumnya dari tutorial ini, semua fungsi masing-masing program kami untuk tinggal di Main () method. Sementara ini adalah cukup untuk program-program sederhana, kami digunakan untuk mempelajari konsep-konsep sebelumnya, ada cara yang lebih baik untuk mengatur program anda, dengan menggunakan metode. Metode yang membantu Anda memisahkan kode Anda dalam modul yang melakukan tugas yang diberikan. Tujuan dari pelajaran ini adalah sebagai berikut:

    
* Memahami struktur metode.
    
* Ketahuilah perbedaan antara statis dan metode instan.
    
* Belajar untuk instantiate objek.
    
* Pelajari bagaimana memanggil metode dari objek yang dipakai.
    
* Memahami 4 jenis parameter.
    
* Pelajari cara menggunakan referensi ini.
Metode Struktur
Metode ini sangat berguna karena memungkinkan Anda untuk memisahkan logika Anda ke dalam unit yang berbeda. Anda dapat mengirimkan informasi ke metode, memilikinya melakukan satu atau lebih pernyataan, dan mengambil nilai balik. Kemampuan untuk melewati parameter dan nilai kembalian adalah opsional dan tergantung pada apa yang Anda inginkan metode lakukan. Berikut adalah gambaran tentang sintaks yang diperlukan untuk menciptakan suatu metode:

     
pengubah kembali atribut-jenis nama-metode (parameter)
    
(
        
laporan
    
)
Kami menunda diskusi tentang atribut dan pengubah untuk pelajaran nanti. Kembalinya-tipe dapat C semua jenis #. Hal ini dapat ditugaskan ke variabel untuk digunakan dalam program ini. Nama metode adalah sebuah identifikasi unik untuk apa yang ingin Anda panggil metode. Untuk meningkatkan pemahaman tentang kode, nama metode harus bermakna dan terkait dengan tugas melakukan metode. Parameter memungkinkan Anda untuk melewatkan informasi ke dan dari sebuah metode. Mereka dikelilingi oleh kurung. Laporan dalam kurung kurawal melaksanakan fungsi metode ini. Kode 5-1. Satu Wikipedia Metode: OneMethod.cs

    
using System;

    
kelas OneMethod
    
(
        
public static void Main ()
        
(
            
myChoice string;

            
OneMethod om = OneMethod baru ();

            
melakukan
           
(
                
myChoice = om.getChoice ();

                
/ / Membuat keputusan berdasarkan pilihan pengguna
                
switch (myChoice)
                
(
                    
kasus "A":
                    
kasus "a":
                        
Console.WriteLine ("Anda ingin menambahkan alamat").;
                        
break;
                    
kasus "D":
                    
kasus "d":
                        
Console.WriteLine ("Anda ingin menghapus alamat").;
                        
break;
                    
kasus "M":
                    
kasus "m":
                        
Console.WriteLine ("Anda ingin mengubah alamat").;
                        
break;
                    
kasus "V":
                    
kasus "v":
                        
Console.WriteLine ("Anda ingin melihat daftar Alamat").;
                        
break;
                    
kasus "Q":
                    
kasus "q":
                        
Console.WriteLine ("Bye").;
                        
break;
                    
default:
                        
Console.WriteLine ("(0) bukan merupakan pilihan yang valid", myChoice);
                        
break;
                
)

                
/ / Tunda untuk memungkinkan pemakai untuk melihat hasil
                
Console.WriteLine ();
                
Console.Write ("tekan Enter untuk melanjutkan ...");

                
Console.ReadLine ();
                
Console.WriteLine ();

            
) While (myChoice! = "Q" & & myChoice = "! Q"); / / Terus sampai pengguna ingin berhenti
        
)

        
string getChoice ()
        
(
            
myChoice string;

            
/ / Cetak Menu A
            
Console.WriteLine ("Buku Alamat saya \ n");

            
Console.WriteLine ("A - Tambah Alamat Baru");
            
Console.WriteLine ("D - Hapus Alamat");
            
Console.WriteLine ("M - Modify Address");
            
Console.WriteLine ("V - View Alamat");
            
Console.WriteLine ("Q - Quit \ n");

            
Console.Write ("Choice (A, D, F, V, atau Q):");

            
/ / Ambil pilihan pengguna
            
myChoice = Console.ReadLine ();
            
Console.WriteLine ();

            
kembali myChoice;
        
)
    
)
Program di properti 5-1 adalah sama dengan program doloop dari Pelajaran 4, kecuali untuk satu perbedaan. Alih-alih menu pencetakan dan menerima masukan dalam Main () metode, fungsi ini telah dipindahkan ke sebuah metode baru yang disebut getChoice (). Tipe kembali adalah string. string ini digunakan dalam laporan beralih di Utama (). Nama metode "getChoice" menggambarkan apa yang terjadi bila dipanggil. Karena kurung yang kosong, tidak ada informasi yang akan ditransfer ke getChoice () method.
Dalam metode blok pertama-tama kita mendeklarasikan variabel myChoice. Meskipun ini adalah nama dan jenis yang sama sebagai variabel myChoice di Utama (), mereka adalah kedua variabel yang unik. Mereka adalah variabel lokal dan mereka hanya terlihat dalam blok yang mereka diumumkan. Dengan kata lain, myChoice di getChoice () tahu apa-apa tentang keberadaan myChoice di Utama (), dan sebaliknya.
The getChoice () metode cetak menu ke konsol dan mendapatkan masukan pengguna. Pernyataan kembali mengirimkan data dari variabel myChoice kembali ke pemanggil, Main (), dari getChoice (). Perhatikan bahwa jenis dikembalikan oleh pernyataan kembali harus sama dengan jenis-kembali pada deklarasi fungsi. Dalam hal ini adalah string.
Dalam Main () metode kita harus instantiate objek OneMethod baru sebelum kita dapat menggunakan getChoice (). Hal ini karena cara getChoice () diumumkan. Karena kita tidak menentukan sebuah pengubah statis, seperti untuk Main (), getChoice () menjadi metode contoh. Perbedaan antara contoh metode dan metode statis adalah beberapa contoh dari sebuah kelas dapat diciptakan (atau yang dipakai) dan contoh masing-masing memiliki getChoice terpisah sendiri () method. Namun, bila metode statis, tidak ada contoh metode itu, dan Anda dapat meminta hanya satu definisi dari metode statis.
Jadi, seperti yang dinyatakan, getChoice () tidak statis dan karena itu, kita harus instantiate objek baru untuk menggunakannya. Hal ini dilakukan dengan deklarasi om OneMethod = OneMethod baru (). Di sisi kiri deklarasi adalah referensi obyek om yang dari OneMethod tipe. Perbedaan dari om menjadi referensi penting. Ini bukan obyek itu sendiri, tetapi merupakan variabel yang dapat merujuk (atau point) ke obyek OneMethod jenis. Di sisi kanan dari deklarasi ini adalah penyerahan objek OneMethod baru ke om referensi. Kata kunci baru C # operator yang menciptakan contoh baru dari suatu obyek di heap. Apa yang terjadi di sini adalah bahwa contoh OneMethod baru sedang diciptakan di heap dan kemudian yang ditetapkan untuk referensi om. Sekarang bahwa kita memiliki sebuah instance dari kelas OneMethod direferensikan oleh om, kita dapat memanipulasi contoh bahwa melalui referensi om.
Metode, ladang, dan anggota kelas lainnya dapat diakses, diidentifikasi, atau dimanipulasi melalui "." (Dot) operator. Karena kita ingin menelepon getChoice (), kita melakukannya dengan menggunakan dot operator melalui referensi om: om.getChoice (). Program ini kemudian menjalankan laporan dalam getChoice () blok dan kembali. Untuk menangkap nilai getChoice () mengembalikan, kita menggunakan "=" (tugas) operator. String kembali ditempatkan dalam Main () 's myChoice variabel lokal. Dari sana, sisa program dijalankan seperti yang diharapkan, dengan menggunakan konsep-konsep dari pelajaran sebelumnya. Kode 5-2. Metode Parameter: MethodParams.cs
using System;
Alamat kelas (
    
public string name;
    
publik string alamat; )
kelas MethodParams (
    
public static void Main ()
    
(
        
myChoice string;

        
MethodParams mp = baru MethodParams ();

        
melakukan
       
(
            
/ / Menampilkan menu dan mendapatkan masukan dari pengguna
            
myChoice = mp.getChoice ();

            
/ / Membuat keputusan berdasarkan pilihan pengguna
            
mp.makeDecision (myChoice);

            
/ / Tunda untuk memungkinkan pemakai untuk melihat hasil
            
Console.Write ("tekan Enter untuk melanjutkan ...");
            
Console.ReadLine ();
            
Console.WriteLine ();
        
) While (myChoice! = "Q" & & myChoice = "! Q"); / / Terus sampai pengguna ingin berhenti
    
)

    
/ / Menampilkan menu dan mendapatkan pilihan pengguna
    
string getChoice ()
    
(
        
myChoice string;

        
/ / Cetak Menu A
        
Console.WriteLine ("Buku Alamat saya \ n");

        
Console.WriteLine ("A - Tambah Alamat Baru");
        
Console.WriteLine ("D - Hapus Alamat");
        
Console.WriteLine ("M - Modify Address");
        
Console.WriteLine ("V - View Alamat");
        
Console.WriteLine ("Q - Quit \ n");

        
Console.WriteLine ("Choice (A, D, F, V, atau Q):");

        
/ / Ambil pilihan pengguna
        
myChoice = Console.ReadLine ();

        
kembali myChoice;
    
)

    
/ / Membuat keputusan
    
void makeDecision (myChoice string)
    
(
        
Alamat addr = Alamat baru ();

        
switch (myChoice)
        
(
            
kasus "A":
            
kasus "a":
                
addr.name = "Joe";
                
addr.address = "C # Station";
                
this.addAddress (ref addr);
                
break;
            
"kasus D":
            
kasus "d":
                
addr.name = "Robert";
                
this.deleteAddress (addr.name);
                
break;
            
kasus "M":
            
kasus "m":
                
addr.name = "Matt";
                
this.modifyAddress (dari addr);
                
Console.WriteLine ("Nama sekarang (0)",. Addr.name);
                
break;
            
kasus "V":
            
kasus "v":
                
this.viewAddresses ("Cheryl", "Joe", "Matt", "Robert");
                
break;
            
kasus "Q":
            
kasus "q":
                
Console.WriteLine ("Bye").;
                
break;
            
default:
                
Console.WriteLine ("(0) bukan merupakan pilihan yang valid", myChoice);
                
break;
        
)
    
)

    
/ / Memasukkan alamat
    
void addAddress ref (Alamat addr)
    
(
        
Console.WriteLine ("Name: (0), Address: (1) ditambahkan", addr.name, addr.address.);
    
)

    
/ / Menghapus alamat
    
deleteAddress void (string name)
    
(
        
Console.WriteLine ("Anda ingin menghapus alamat (0) '", nama.);
    
)

    
/ / Ubah alamat
    
void modifyAddress (dari Alamat addr)
    
(
        
/ / Console.WriteLine ("Name: (0)",. Addr.name); / / menyebabkan error!
        
addr = Alamat baru ();
        
addr.name = "Joe";
        
addr.address = "C # Station";
    
)

    
/ / Menampilkan alamat
    
void viewAddresses (params string [] nama)
    
(
        
foreach (string name dalam nama)
        
(
            
Console.WriteLine ("Name: (0)", nama);
        
)
    
) )
Kode 5-2 merupakan modifikasi dari properti 5-1, modularizing program dan pelaksanaan menambahkan lebih untuk menunjukkan lewat parameter. Ada 4 macam parameter C # metode dapat menangani: keluar, ref, params, dan nilai. Untuk membantu menggambarkan penggunaan parameter, kami membuat kelas Address dengan dua bidang string.
Dalam Main () kita sebut getChoice () untuk mendapatkan masukan pengguna dan simpan string yang dalam variabel myChoice. Kemudian kita menggunakan myChoice sebagai argumen untuk makeDecision (). Dalam deklarasi makeDecision () Anda akan melihat salah satu parameter dinyatakan sebagai string dengan nama myChoice. Sekali lagi, ini adalah myChoice baru, terpisah dari argumen pemanggil dan lokal hanya untuk metode ini. Sejak makeDecision () 's parameter myChoice tidak memiliki pengubah lain, dianggap sebagai parameter nilai. Nilai aktual dari argumen tersebut disalin di stack. Variabel yang diberikan oleh nilai parameter bersifat lokal dan perubahan apapun pada variabel lokal yang tidak mempengaruhi nilai variabel yang digunakan dalam argumen pemanggil.
Pernyataan switch makeDecision () panggilan metode untuk setiap kasus. Pemanggilan metode ini berbeda dari yang kita digunakan dalam Main (). Alih-alih menggunakan referensi mp, mereka menggunakan kata kunci ini. ini adalah referensi ke objek saat ini. Kita tahu objek saat ini telah instantiated karena makeDecision () bukanlah metode statis. Oleh karena itu, kita dapat menggunakan referensi ini untuk memanggil metode dalam contoh yang sama.
The addAddress () metode merupakan parameter ref. Ini berarti bahwa referensi ke parameter yang akan disalin ke metode. referensi ini masih mengacu pada objek yang sama pada tumpukan sebagai referensi asli yang digunakan dalam argumen pemanggil. Hal ini berarti setiap perubahan terhadap obyek referensi lokal juga perubahan objek referensi pemanggil. Kode tidak dapat mengubah referensi, tetapi bisa membuat perubahan pada obyek yang dirujuk. Anda dapat menganggap ini sebagai cara untuk memberikan input / output parameter.
Seperti yang Anda ketahui, metode yang memiliki nilai kembali, tapi kadang-kadang Anda akan ingin untuk kembali lebih dari satu nilai dari sebuah metode. Sebuah parameter keluar memungkinkan Anda untuk kembali nilai-nilai tambahan dari metode.
modifyAddress () mempunyai parameter keluar. parameter keluar hanya dilewati kembali ke fungsi panggil. Karena aturan tugas tertentu, Anda tidak dapat menggunakan variabel ini sampai memiliki nilai valid yang ditetapkan. Baris pertama di modifyAddress () adalah berkomentar dengan tujuan untuk menggambarkan hal ini. Uncomment dan kompilasi untuk melihat apa yang terjadi. Setelah ditetapkan dan program kembali, nilai parameter keluar akan disalin ke variabel argumen pemanggil. Anda harus memberikan nilai pada parameter sebelum kembali metode Anda.
Sebuah tambahan yang sangat berguna untuk C # bahasa adalah parameter params, yang memungkinkan anda mendefinisikan suatu metode yang dapat menerima sejumlah argumen variabel. Parameter params harus merupakan array dimensi satu atau bergerigi. Ketika menelepon viewAddresses (), kita lulus dalam empat argumen string. Jumlah argumen adalah variabel dan akan dikonversi menjadi string [] secara otomatis. Dalam viewAddresses () kita menggunakan loop foreach untuk mencetak masing-masing string. Alih-alih daftar argumen string, input bisa juga sebuah array string. Parameter params dianggap sebagai parameter masukan saja dan setiap perubahan mempengaruhi copy lokal saja.
Singkatnya, Anda memahami struktur metode. Empat jenis paramters adalah nilai, ref, keluar, dan params. Bila Anda ingin menggunakan metode Misalnya, Anda harus instantiate objek sebagai bertentangan dengan metode statis yang dapat dipanggil setiap saat. Referensi ini mengacu pada objek yang mengandung dan dapat digunakan untuk merujuk kepada anggota objek yang mengandung, termasuk metode.
Saya mengundang Anda kembali untuk Pelajaran 6: namespaces.
sumber :JoeMayo

  • Digg
  • Del.icio.us
  • StumbleUpon
  • Reddit
  • RSS

0 komentar:

Posting Komentar