Z tego, co rozumiem, mogę automatycznie rzutować typ Foo
na int, gdy jest przekazywany do metody oczekującej int. Czy mogę też zrobić inny kierunek? tj. mieć int niejawnie rzutowany na Foo
i czy ta definicja również znajduje się w foo?
Moje rozumienie może być błędne.
2 odpowiedzi
Możesz.
class Foo
{
public Foo(int value)
{
this.Value = value;
}
public int Value { get; set; }
// ImplicitSample -> int
public static implicit operator int(Foo input)
{
return input.Value;
}
// string -> ImplicitSample
public static implicit operator Foo(int input)
{
return new Foo(input);
}
}
Próbka w tym artykule pokaże to lepiej, niż mogę wyjaśnić: http://msdn.microsoft.com/en-us/library/z5z9kes2.aspx
Tak, możesz.
public class Foo
{
public int Value { get; set; }
public static implicit operator int(Foo foo)
{
return foo.Value;
}
public static implicit operator Foo(int value)
{
return new Foo() { Value = value };
}
}
Podobne pytania
Nowe pytania
c#
C # (wymawiane „patrz ostro”) jest językiem programowania wysokiego poziomu, statycznie typowanym, wieloparadygmatowym opracowanym przez firmę Microsoft. Kod C # zwykle jest przeznaczony dla rodziny narzędzi Microsoft .NET i czasów wykonywania, do których należą między innymi .NET Framework, .NET Core i Xamarin. Użyj tego tagu w przypadku pytań dotyczących kodu napisanego w C # lub C # formalnej specyfikacji.