public List<string> Attributes = new List<string>();
public void Add(string key, string value)
{
if (value.ToString() != "")
{
Attributes.Add(key + "=\"" + value + "\" ");
}
}
public void Add(string key, int value)
{
if (value.ToString() != "")
{
Attributes.Add(key + "=\"" + value + "\" ");
}
}
那么,我们不是只有两个Add函数吗?例如
public void Add(string key, <var> value)
{
if (value.ToString() != "")
{
Attributes.Add(key + "=\"" + value + "\" ");
}
}
答案 0 :(得分:6)
请注意,在这种情况下,函数的整数版本无论如何都必须转换为字符串以包含在列表中。因此,如果您的整个问题确实如上所述,您只需要函数的字符串版本,并且可以像这样调用它:
int SomeValue = 42;
string SomeName= "The Answer to Life, the Universe, and Everything";
Add(SomeName, SomeValue.ToString());
但是如果你问一个更普遍的问题,你可以使用object
类型,如下所示:
public void Add(string key, object value)
{
if (value != null)
{
Attributes.Add(key + "=\"" + value.ToString() + "\" ");
}
}
甚至更好,只需使用String.Format:
String.Format("{0}=\"{1}\"", SomeName, SomeValue);
答案 1 :(得分:4)
public void Add<T>(string key, T value)
{
if (value.ToString() != "")
{
Attributes.Add(key + "=\"" + value + "\" ");
}
}
使用
Add("key", 22);
Add("key", "value");
答案 2 :(得分:1)
使用Object作为类型。
public void Add(string key, object value)
{
if(value == null) {return;}
var sval = value.ToString();
if(sval != "")
{ Attributes.Add( key + "=\"" + sval + "\""}
}