Нет, неявное преобразование типов просто означает преобразование типов, которое не обязательно должно быть явным в коде.
LINQ to XML предоставляет хорошие примеры:
// Implicit conversion from string to XNamespace
XNamespace ns = "http://url.com";
XElement element = new XElement("foo", "bar");
// Explicit conversion of XElement to string
string value = (string) element;
Так вот какони используются - и вы создаете свои собственные явные или неявные операторы преобразования, используя код, показанный в MSDN ( явный , неявный ).
Краткий, полный, но бессмысленный пример:
class Foo
{
private readonly int value;
private Foo(int value)
{
this.value = value;
}
public static implicit operator Foo(int value)
{
return new Foo(value);
}
public static explicit operator int(Foo foo)
{
if (foo == null)
{
throw new ArgumentException("foo");
}
return foo.value;
}
}
class Test
{
static void Main(string[] args)
{
int x = 10;
Foo foo = x;
int y = (int) foo;
}
}