Anda dapat mendeklarasikan operator konversi di kelas Anda menggunakan kata kunci explicitatau implicit.
Sebagai pedoman umum, Anda hanya boleh menyediakan implicitoperator konversi jika konversi tidak mungkin gagal. Gunakan explicitoperator konversi saat konversi mungkin gagal.
public class MyClass
{
private byte[] _bytes;
// change explicit to implicit depending on what you need
public static explicit operator MyClass(byte[] b)
{
MyClass m = new MyClass();
m._bytes = b;
return m;
}
// change explicit to implicit depending on what you need
public static explicit operator byte[](MyClass m)
{
return m._bytes;
}
}
Menggunakan explicitberarti bahwa pengguna kelas Anda perlu melakukan konversi eksplisit:
byte[] foo = new byte[] { 1, 2, 3, 4, 5 };
// explicitly convert foo into an instance of MyClass...
MyClass bar = (MyClass)foo;
// explicitly convert bar into a new byte[] array...
byte[] baz = (byte[])bar;
Menggunakan implicitberarti bahwa pengguna kelas Anda tidak perlu melakukan konversi eksplisit, semuanya terjadi secara transparan:
byte[] foo = new byte[] { 1, 2, 3, 4, 5 };
// imlpicitly convert foo into an instance of MyClass...
MyClass bar = foo;
// implicitly convert bar into a new byte[] array...
byte[] baz = bar;