Я пытаюсь найти способ взять свойство класса и передать его методу вместе с другой переменной для обновления свойства на основе условий. Например < /p>
класс < /p>
public class MyClass{
public string? Prop1 { get; set; }
public string? Prop2 { get; set; }
public bool? Prop3 { get; set; }
public DateTime? Prop4 { get; set; }
... etc...
}
< /code>
тестовый код я хотел бы приступить к работе ...: < /p>
var obj = new MyClass();
MyCheckMethod(ref obj.Prop1, someCollection[0,1]);
< /code>
В методе: < /p>
private void MyCheckMethod(ref Object obj, string value)
{
if (!string.isnullorempty(value))
{
// data conversion may be needed here depending on data type of the property
obj = value;
}
}
< /code>
Я хочу иметь возможность передать любое свойство любого класса и обновить свойство только после проверки значения, передаваемого в методе. Я надеялся, что смогу сделать это с дженерами, но я еще не нашел способ сделать это. Или, если я усложняю то, что мне нужно сделать.private void MyCheckMethod(ref object obj, Action action)
< /code>
Тогда я мог бы сделать что -то подобное: < /p>
...
MyCheckMethod(ref obj.Prop1, (somecollection[0,1]) => {
... etc....
})
< /code>
Итак, я ищу некоторое руководство о том, как продолжить. Данные поставляются с помощью API Coll для стороннего продукта ... часть их SDK. Однако в моем классе мне нужно иметь надлежащие типы данных. Преобразовать строки значения в DateTime для дат, строковых значений в int для типов данных int и т. Д. Другое предостережение заключается в том, что если нет допустимого значения для типа данных, то значение по умолчанию свойства должно быть нулевым. < /P>
Дополнительная информация: < /strong> < /p>
Входящие данные всегда находятся в формате строки. свойство.
входящее значение - "". Я проверяю, чтобы увидеть, является ли строковое значение реннее. Это так, что я ничего не делаю с свойством.
входящее значение составляет "0,343".
I Test, чтобы увидеть, является ли строковое значение Nullorempty. Это не так, чтобы я мог обновить свойство, как только я сделаю конверт и т. Д.>
Подробнее здесь: https://stackoverflow.com/questions/550 ... o-a-method