替换switch语句-通过字符串名称获取属性

Ben

基本上,我有一个系统,其中我的数据网格使用新的背景色标记已更改的单元格,为此,我在包含这些属性的对象中有一个方法,该方法接收一个字符串,该字符串是要检查的属性的名称,然后是使用该字符串检查正确属性的switch语句。

public Color HasChanged(string value)
{
    switch (value)
    {
        case "CILRef":
            if (_localShipment.cilRef != _originalShipment.cilRef)
            {
                return Colors.SkyBlue;
            }
            else
            {
                return Colors.White;
            }
        case "ArrivedAtPortDate":
            if (_localShipment.arrivedAtPortDate != _originalShipment.arrivedAtPortDate)
            {
                return Colors.SkyBlue;
            }
            else
            {
                return Colors.White;
            }
    }
}

为了简洁起见,我删除了其余的属性。

现在,我the不休地感觉到,有一种更清洁的方法可以在不使用switch语句的情况下执行此string> property,但是我一生无法在google上找到任何东西,如果没有一些关键字就很难进行搜索。

我还试图仅保存那些已更改的属性,我将把所有更改的属性名称放入数组中,然后使用另一个switch语句进行循环,该语句检查该数组,然后保存正确的属性。但是,这对我来说似乎还不整齐。

有没有更清洁的解决方案,希望它可以处理新属性的添加,而无需在switch语句中添加新代码。

如果需要,我可以包括执行此检查的其余代码(即,在数据网格上的WPF绑定,以及一个将属性名称作为字符串参数调用检查方法的转换器)。

EZI

您可以编写一个扩展方法,例如:

public static object GetPropValue(this object o, string propName)
{
    return o.GetType().GetProperty(propName, BindingFlags.Instance | BindingFlags.Public | BindingFlags.IgnoreCase)
            .GetValue(o);
}

并使用它

if(localShipment.GetPropValue(value).Equals(originalShipment.GetPropValue(value)))
{
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

通过从用户获取输入,在switch语句中使用字符串

来自分类Dev

如何根据JSON属性名称替换字符串值

来自分类Dev

如何从 Dart 中的 switch 语句获取常量字符串

来自分类Dev

如何替换通过属性加载的字符串中的空格

来自分类Dev

switch语句-字符串vs int

来自分类Dev

带字符串的switch语句

来自分类Dev

switch语句-字符串与int

来自分类Dev

字符串语句从switch语句返回null

来自分类Dev

(C ++ / QT)通过将字符串转换为整数来对字符串使用switch语句

来自分类Dev

包含字符串和字符的switch语句

来自分类Dev

将基本名称的输出通过管道传递给字符串替换

来自分类Dev

如何通过用随机字符串替换它们来停止Intellij隐藏静态常量名称?

来自分类Dev

用JSON字符串中的缩写替换js对象属性的名称?

来自分类Dev

在.each语句中替换字符串中的字符

来自分类Dev

jQuery替换字符串属性简码

来自分类Dev

jQuery的属性替换字符串

来自分类Dev

使用switch语句将字符串与枚举进行比较

来自分类Dev

如果找到字符串,则执行switch语句

来自分类Dev

在Switch语句中使用字符串

来自分类Dev

Powershell Switch 语句字符串匹配不起作用

来自分类Dev

用私有const语句替换字符串文字

来自分类Dev

满足IF语句时替换字符串数组中的char

来自分类Dev

字符串替换联接的SQL SELECT语句

来自分类Dev

用私有const语句替换字符串文字

来自分类Dev

用不同的字符串替换 SQL 语句的输出

来自分类Dev

无法获取替换字符串的输出?

来自分类Dev

从字符串数组获取属性名称

来自分类Dev

通过查找特定字符串并替换以下字符串来更改字符串

来自分类Dev

在Switch语句中替换Char

Related 相关文章

热门标签

归档