Как свойству присвоить значение типа string
От: Bron  
Дата: 20.04.06 11:29
Оценка:
Есть компонент, в нем задано свойство

public MyStruct MyProperty {
  get {...}
  set {...}
}


на веб форме данному свойству задается значение
<ST:MyControl id=Control1 runat="server" MyProperty="одна штука"/>
соответсвтенно это работать не будет

я могу дополнительно сделать

public string MyPropertyText {
  get {
    return MyPropery.ToString ();
  }
  set {
    MyProperty = MyStruct.Parse (value);
  }
}


и работать с полем MyProperyText, но это решение мне не очень нравится.
Так что мне нужно дополнительно прописать в MyStruct, что бы MyProperty можно было присвоить значение типа string.
Как свойству присвоить значение типа string
От: Аноним  
Дата: 20.04.06 11:41
Оценка:
public void SetMyPropertyText (string s)
{
MyProperty = MyStruct.Parse (value);
}

В данном случае вы не можете использовать имя MyPropertyText для метода, потому что он будет конфликтовать с именем свойства. А свойство может иметь в виде значения только MyStruct.


данное сообщение получено с www.gotdotnet.ru
ссылка на оригинальное сообщение
Re: Как свойству присвоить значение типа string
От: Bron  
Дата: 20.04.06 12:37
Оценка:
Здравствуйте, mishazhutov, Вы писали:

M>public void SetMyPropertyText (string s)

M>{
M> MyProperty = MyStruct.Parse (value);
M>}

M>В данном случае вы не можете использовать имя MyPropertyText для метода, потому что он будет конфликтовать с именем свойства. А свойство может иметь в виде значения только MyStruct.


Не понял. да и вопрос не об этом.

Если бы я использовал вместо MyStruct например DateTime, то на веб форме я бы смог указать ему текстовое значение. Я же хочу, что бы свойству с моим типом MyStruct, тоже можно было присвоить текстовое значение. Как это сделать?
Re: Как свойству присвоить значение типа string
От: Аноним  
Дата: 20.04.06 13:17
Оценка:
Вставьте в MyStruct этот код:

public static implicit operator string(MyStruct t) {
return t.ToString();
}

public static explicit operator MyStruct(string str) {
return MyStruct.Parse (str);
}


данное сообщение получено с www.gotdotnet.ru
ссылка на оригинальное сообщение
Re[2]: Как свойству присвоить значение типа string
От: Bron  
Дата: 20.04.06 13:38
Оценка:
Здравствуйте, mishazhutov, Вы писали:

M>Вставьте в MyStruct этот код:


M> public static implicit operator string(MyStruct t) {

M> return t.ToString();
M> }

M> public static explicit operator MyStruct(string str) {

M> return MyStruct.Parse (str);
M> }

Не помогло. Вот такое сообщение об ошибке:
Cannot create an object of type 'MyStruct' from its string representation 'одна штука' for the 'MyProperty' property.
Re[3]: Как свойству присвоить значение типа string
От: Bron  
Дата: 20.04.06 13:57
Оценка:
Здравствуйте, Bron, Вы писали:

B>Здравствуйте, mishazhutov, Вы писали:


M>>Вставьте в MyStruct этот код:


M>> public static implicit operator string(MyStruct t) {

M>> return t.ToString();
M>> }

M>> public static explicit operator MyStruct(string str) {

M>> return MyStruct.Parse (str);
M>> }

B>Не помогло. Вот такое сообщение об ошибке:

B>Cannot create an object of type 'MyStruct' from its string representation 'одна штука' for the 'MyProperty' property.
Имеется ввиду если задавать значение на веб форме
<ST:MyControl id=Control1 runat="server" MyProperty="одна штука"/>
Re[2]: Как свойству присвоить значение типа string
От: Аноним  
Дата: 20.04.06 14:06
Оценка:
я посмотрел на DateTime в рефлекторе, он реализует IComparable, IFormattable, IConvertible. Может в это решение? Я не уверен, то что прав, но внутри DateTime нет других методов, которые конвертируют из string.


данное сообщение получено с www.gotdotnet.ru
ссылка на оригинальное сообщение
Re[3]: Как свойству присвоить значение типа string
От: Bron  
Дата: 20.04.06 19:40
Оценка:
Здравствуйте, mishazhutov, Вы писали:

M>я посмотрел на DateTime в рефлекторе, он реализует IComparable, IFormattable, IConvertible. Может в это решение? Я не уверен, то что прав, но внутри DateTime нет других методов, которые конвертируют из string.



Все работает. Извиняюсь, что ввел в заблуждение. Parse выдавал Exception, поэтому не работало.
Тоже просмотрел рефлектором DateTime, но там не переопределены explicit и implicit.
Интересно, что же позволяет DateTime конвертироваться из string с веб формы?
Re[4]: Как свойству присвоить значение типа string
От: Sinclair Россия https://github.com/evilguest/
Дата: 24.04.06 08:54
Оценка:
Здравствуйте, Bron, Вы писали:

B>Интересно, что же позволяет DateTime конвертироваться из string с веб формы?

поддержка IConvertible.
1.1.4 stable rev. 510
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re: Как свойству присвоить значение типа string
От: kpumuk Украина http://kpumuk.info/
Дата: 26.04.06 11:45
Оценка:
Здравствуйте, Bron, Вы писали:

B>Так что мне нужно дополнительно прописать в MyStruct, что бы MyProperty можно было присвоить значение типа string.


http://www.codeproject.com/aspnet/TypeConverters.asp
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.