组合getPropertyname 多个参数函数(参数关键字)



我具有这样定义的函数:

public static string GetPropertyName<T>(Expression<Func<T>> memberExpression)
{
    MemberExpression expressionBody = (MemberExpression)memberExpression.Body;
    return expressionBody.Member.Name;
}

此功能返回其收到的参数的名称。

getPropertyname(()=> SomeParameter) ->返回字符串" SomeParameter"

我的问题是将其与多个参数函数结合在一起。

采用此功能:

public static string NameOfFirstEmptyParam(params string[] parameters)
{
    foreach (string p in parameters)
    {
        if (String.IsNullOrWhiteSpace(p))
            return GetPropertyName<String>(() => p)
    }
    return null;
}

您可以想象,如果我们这样做:

string param0 = "0";
string param1 = "1";
string param2 = null;
NameOfFirstEmptyParam(param0, param1, param2);

功能返回" P"。

我想获得" param2"。有任何建议或提示吗?

非常感谢。

也许您可以做类似的事情

public static string NameOfFirstEmptyParam<T>(T parameters) where T: class
    {
        var propertyInfos = typeof(T).GetProperties();
        for (var i = 0; i < propertyInfos.Length; i++)
        {
            if (string.IsNullOrEmpty(propertyInfos[i].GetMethod.Invoke(parameters, null)?.ToString()))
                return propertyInfos[i].Name;
        }
        return null;
    }

并执行

string param0 = "1";
string param1 = "2";
string param2 = null;
NameOfFirstEmptyParam(new {param0, param1, param2}); //"param2" will be returned

相关内容

  • 没有找到相关文章

最新更新