Присвоить значение непосредственно переменной класса
Я не знаю, так ли это легко, никто этого не ищет, но ничего не нашел...
Я хочу сделать следующее:
public class foo
{
string X
{
get;
set
{
//set and do some other stuff
}
}
//some other functions
}
Main:
private foo = new foo();
foo = "bla";
Как я могу присвоить этому bla
DIRECTLY переменной класса foo
без использования foo.X = "bla"
?
Как это делают типы данных, например строка?
Как они сделаны?
Потому что я могу сделать string y; y = "abc"
?
Ответы
Ответ 1
Вы ищете неявный оператор?
public class foo {
string X {
get;
set;
}
public static implicit operator foo(string value) {
return new foo() {
X = value
};
}
}
Обратите внимание, что здесь нет вызова конструктора
который будет вызван (и таким образом создать новый экземпляр foo) неявно:
private foo myFoo = "bla";
Ответ 2
Я думаю, вы имели в виду:
private foo = new foo();
foo.X = "bla";
Не?
Итак, это будет:
private foo = new foo() {
X = "bla"
};
И X должен быть общедоступным.
Я правильно понял вас?