by

Parameter di CSharp

Suatu method dapat memiliki serangkaian parameter. Parameter ini akan mengirimkan informasi yang diperlukan oleh method untuk melakukan operasinya. Dalam C#, parameter dibagi menjadi value parameter, output parameter dan reference parameter. Untuk membuat parameter output digunakan keyword out dan untuk membuat parameter reference digunakan keyword ref. Jika tidak ditentukan out atau ref maka parameter akan dikirimkan secara by-value, ini berarti salinan dari value akan dibuat pada saat kita mengakses suatu method.

[csharp]using System;

public class Foo
{
public static void FooMethod(int x, out int y, ref int z)
{
x = x * 10; y = x + 10; z = x * 100;
}

public static void Main()
{
int a = 10; int b;
int c = 10;
FooMethod(a, out b, ref c); Console.WriteLine("Nilai a = {0}", a); Console.WriteLine("Nilai b = {0}", b); Console.WriteLine("Nilai c = {0}", c);
}
}[/csharp]

Pada contoh program diatas, pada method FooMethod, a merupakan parameter value, b merupakan parameter output dan c merupakan parameter reference.

Parameter value dan parameter reference sebelum dikirimkan kedalam suatu method harus diberikan suatu nilai, sedangkan parameter output tidak perlu diberikan suatu nilai pada saat dikirimkan kedalam suatu method, tetapi parameter output ini harus diberikan suatu nilai sebelum keluar dari exit point di method tersebut. Dalam contoh diatas juga terlihat bahwa untuk mengkases method yang menerima parameter out dan ref maka ekspresi untuk memanggil juga harus menggunakan keyword out dan ref.

Jika program diatas dijalankan akan menampilkan hasil berikut:

Nilai a = 10
Nilai b = 110
Nilai c = 10000

Karena a dikirimkan by value maka walaupun x didalam FooMethod nilainya dikalikan dengan 10 hasil yang ditampilkan tetap 10. Sedangkan c dikirimkan by- reference maka hasil yang ditampilkan adalah 10000; karena di dalam FooMethod nilai z diubah dengan mengalikannya dengan x yang sebelumnya telah dikalikan dengan 10 (10 * 10 * 100). b dikirimkan sebagai parameter output, jika b tidak diberikan suatu nilai dalam FooMethod kompiler akan memberikan pesan kesalahan berikut pada saat program di kompilasi.

The out parameter ‘b’ must be assigned to before control leaves the current method”.

Comment

Leave a Reply

Your email address will not be published. Required fields are marked *