Концептуально то, что вы хотите сделать здесь, на самом деле возможно в .NET и C #, но вы ошибаетесь в отношении синтаксиса. Похоже, что оператор неявного преобразования будет решением здесь,
Пример:
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
операторы преобразования, но я думаю, что вы больше после неявных операторов.