आप explicit
या तो implicit
कीवर्ड का उपयोग करके अपनी कक्षा में रूपांतरण ऑपरेटर घोषित कर सकते हैं ।
एक सामान्य नियम-के-अंगूठे के रूप में, आपको केवल implicit
रूपांतरण ऑपरेटर प्रदान करना चाहिए, जब रूपांतरण संभवतः विफल न हो। explicit
रूपांतरण विफल होने पर रूपांतरण ऑपरेटरों का उपयोग करें ।
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;
}
}
उपयोग करने का explicit
अर्थ है कि आपकी कक्षा के उपयोगकर्ताओं को एक स्पष्ट रूपांतरण करने की आवश्यकता होगी:
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;
उपयोग करने का implicit
अर्थ है कि आपकी कक्षा के उपयोगकर्ताओं को एक स्पष्ट रूपांतरण करने की आवश्यकता नहीं है, यह सब पारदर्शी रूप से होता है:
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;