Ответ 1
Концептуально то, что вы хотите сделать здесь, на самом деле возможно в .NET и С#, но вы лаяете неправильное дерево в отношении синтаксиса. Кажется, что неявный оператор преобразования будет здесь,
Пример:
struct Foo
{
public static implicit operator string(Foo value)
{
// Return string that represents the given instance.
}
public static implicit operator Foo(string value)
{
// Return instance of type Foo for given string value.
}
}
Это позволяет вам назначать и возвращать строки (или любой другой тип) в/из объектов вашего пользовательского типа (Foo
здесь).
var foo = new Foo();
foo = "foobar";
var string = foo; // "foobar"
Два неявных оператора преобразования не обязательно должны быть симметричными, хотя обычно это целесообразно.
Примечание. Существуют также операторы преобразования explicit
, но я думаю, что вы больше после неявных операторов.