【发布时间】:2021-06-13 11:23:40
【问题描述】:
我有两个类 OnlineBoolTag 和 OnlineDoubleTag。我将这些对象添加到列表中,并希望获取不同类型的值。如何返回 double 或 bool 的 Value 属性?
public class OnlineDoubleTag : IOnlineTag
{
public string Name { get; set; }
public double Value { get; set; }
}
public class OnlineBoolTag : IOnlineTag
{
public string Name { get; set; }
public bool Value { get; set; }
}
将对象添加到列表中:
var onlinetags = new List<IOnlineTag>();
onlinetags.Add(new OnlineBoolTag { Name = "Bool1", Value = true });
onlinetags.Add(new OnlineDoubleTag { Name = "Float1", Value = 777.22 });
foreach (var tag in onlinetags)
{
Console.WriteLine(tag.*****Value*****);
}
【问题讨论】:
-
IOnlineTag 是如何定义的?
-
interface IOnlineTag { public object GetValue() }
-
为什么不将 GetValue 方法实现为
return this.Value并直接调用它?在您的实际需求中,您需要对 Value 做什么? -
如果我将接口实现为“返回 this.Value”,我将返回对象类型。但我需要 bool 或 double。
标签: c# list collections