【发布时间】:2014-10-15 08:49:34
【问题描述】:
我目前有一个通用类,它允许使用表达式作为值。
public class Expression<T>
{
public T Value { get; set; }
public string ExpressionText { get; set; }
public static implicit operator Expression<T>(string input)
{
if (string.IsNullOrEmpty(input))
return null;
if (input.StartsWith("="))
return new Expression<T> { ExpressionText = input };
var converter = TypeDescriptor.GetConverter(typeof(T));
T value = (T)converter.ConvertFromString(input);
return new Expression<T> { Value = value };
}
public static implicit operator Expression<T>(T value)
{
if (value == null)
return null;
return new Expression<T> { Value = value };
}
我希望能够使用 T 和字符串的隐式转换来设置属性。但是,如果表达式是字符串类型,编译器无法决定使用哪种转换。
有没有巧妙的办法解决这个问题?
谢谢,
肖恩
【问题讨论】:
标签: c# .net implicit-conversion